VBA против VSTO для Excel, чтобы PowerPoint - PullRequest
3 голосов
/ 17 июля 2010

В настоящее время я рассматриваю несколько вариантов копирования листа Excel в презентацию PowerPoint.

  1. С помощью VBA выберите лист Excel, скопируйте диапазон и поместите его во вновь созданный слайд PowerPoint.как изображение.
  2. Я создаю автоматизированный HTML-файл Excel для листа, как только этот HTML-файл сохраняется (изначально), я создаю изображение вне HTML-файла.
  3. Используя VSTO, я открываю копию Excelкаждый объект и вставьте его в новый слайд PowerPoint, используя буфер обмена (или другой метод копирования).

Эти операции будут часто вызываться многими разными пользователями - все фактические операции выполняются на одномсервер.

Какими будут плюсы и минусы каждого подхода?Есть ли какие-либо предпочтительные или лучше оптимизированные методы доступны?

1 Ответ

4 голосов
/ 17 июля 2010

Вариант 1:

Pro:

  • Скорость

Против:

  • Вставленные данные нельзя копировать, изменять, просматривать в Excel и т. Д.

Вариант 3:

Пару лет назад я написал похожее VBA -Процедура, которая создала презентацию> 1000 слайдов из листа Excel.Метод был вызван из Excel и получил AFAIR примерно так (псевдокод):

newSlide = PowerPoint.AddSlide
embeddedSheet = newSlide.Add OLEObject(Excel-Sheet)
embeddedSheet.Range(..., ...) = srcSheet.Range(..., ...)
someFormating(embeddedSheet)
createPieChart(embeddedSheet.Range(..,...))
resize(embeddedSheet)
embeddedSheet.Save
embeddedSheet.Close

Pro / Contra, основываясь на моем опыте работы с описанным выше методом.

Pro:

  • Лист встроен в PowerPoint
    • , вы можете изменять данные и запускать на нем макросы.
    • вам не нужносохранить исходный лист Excel.

Против:

  • Размер выходного файла больше
  • Процесс использует многоОЗУ.
  • Процесс занимает относительно много времени.AFAIR 1k Слайды заняли около 10 минут на компьютере в моем офисе.Создание OleObject заняло большую часть времени.
...