Программно создавать слайды PowerPoint PowerPoint из данных Excel

Использование Powerpoint 2010 для Mac.

У меня есть презентация с 100 слайдами, которую нужно создавать еженедельно. Каждый слайд имеет одинаковый шаблон. Элементы на каждом слайде состоят из 5 текстовых полей и изображения, каждый слайд соответствует столбцам данных в таблице Excel.

Может ли кто-нибудь указать мне на пример кода или подробное пошаговое руководство по тому, как я могу прокручивать строки этого файла Excel и программно создавать эти слайды?

Это определенно возможно, и довольно весело 🙂

Моя первая рекомендация – создать шаблон powerpoint с использованием мастер-представлений, с заполнителями и заголовками, готовыми к работе. Затем запустите следующий макрос powerpoint, чтобы вы могли получить имя и индекс / идентификатор для каждой фигуры на странице.

Sub nameshapes() Dim sld As Slide Dim shp As Shape Set sld = Application.ActivePresentation.Slides(1) For Each shp In sld.Shapes shp.TextEffect.Text = shp.name & " " & shp.ID Next End Sub 

Это быстрый и грязный фрагмент кода, который помещает индекс и имя каждого элемента на вашу страницу шаблона в самую форму. Запомните, запишите их. Это ваши контрольные точки, где вы хотите, чтобы вещи шли. Я не буду разбираться в основах цикла и т. Д., Но переходим к ключевым кодам кода.

1) Открыть и получить контроль над powerpoint от excel.

 Set ppt = CreateObject("PowerPoint.Application") ppt.Visible = True Set myPPT = ppt.Presentations.add myPPT.ApplyTemplate ("Your template here.potx") 

Затем я добавляю все страницы, которые мне понадобятся (это может варьироваться в зависимости от вашего приложения, а количество строк и независимо от того, выполняете ли вы это в начале или в процессе, будет зависеть от того, сопоставлена ​​ли вам какая страница должен помещать данные в ваши данные)

 For x = 1 To NumberOfPages myPPT.Slides.AddSlide x, myPPT.SlideMaster.CustomLayouts(2) '2 is the index of the template I wish to use (in master views, the index is the order they're in (starting from 1) Next 

Я предполагаю, что вы знаете, какую страницу вы хотите обновлять в каждой строке, так что:

 For Each dr In .rows 'I'm storing my data in a special collection, you will need to adapt this Set currSlide = myPPT.Slides(dr.cell("OutputPage").Value) 'go to the right page Sheets(dr.cell("SheetName").toString).Activate 'make sure the data you want is active ActiveSheet.Range(Names(dr.cell("ChartID").Value)).CopyPicture 'copy the table as a picture, this is easiest for formatting in powerpoint, but you can do lots of things here currSlide.Select currSlide.Shapes("Content Placeholder " & dr.cell("Output Position").toString).Select 'the output position is the index from the first bit of code, ppt.ActiveWindow.View.Paste next 

Теперь ваше приложение, безусловно, будет отличаться от этого, но я надеюсь, что все основные потребности есть, и это должно быть хорошей отправной точкой.

Самостоятельное приложение SlideMight принимает шаблон PowerPoint, файл данных JSON и конфигурацию и объединяет их в презентацию.

Итерации могут быть над слайдами и над строками таблицы, и они могут быть вложенными. Подстановка изображения поддерживается также в ячейках таблицы.

Отказ от ответственности : я разработчик и продавец SlideMight.

  • Открытие конкретной версии Powerpoint
  • Экспортировать указанный выбор графиков в качестве изображения для разных слайдов .ppt
  • Как предотвратить масштабирование из-за изменения DPI?
  • Как открыть бэкэнд-лист схемы Powerpoint в новом экземпляре
  • Неопределенная ошибка ошибки Enable
  • Данные Excel в слайде Powerpoint с форматированием
  • Как отображать файлы docx в javafx
  • Код VBA для форматирования текста, скопированного из Excel в PowerpoInt
  • Открытие PowerPoint из Excel
  • Приложение с использованием Microsoft Office interop v.11 с Windows 7, Microsoft Office 2010
  • Как использовать VBA для вставки отдельных строк Excel друг в друга в PowerPoint?
  • Interesting Posts

    Workbook_open () не будет выполняться при открытии файла Excel 2010 на листе с условным форматированием

    Заполнение многоколоночной ListBox из другого UserForm ListBox

    Как только я использовал функцию регрессии в excel, как мне узнать формулу, которую он использовал (y = mx + b)

    Формула Excel Как получить данные с другого листа

    Как сохранить число в виде строки в Excel?

    VBA Вставить пустую строку на основе различий в ячейках

    Формула для поиска таблицы и возврата нескольких заголовков столбцов

    Схема организации

    PowerPivot for Excel 2013 «Операции не могут выполняться, потому что выполняются другие операции …»

    Макро сделать все возможные комбинации данных в разных столбцах на листе excel

    Отсутствует стиль в ячейке Excel Generation Inside Loop

    Поддерживает ли jqgrid экспорт в excel «из коробки» или мне нужно написать код на стороне сервера?

    msxml2.xmlhttp IE 11 vs Chrome

    Использование VLOOKUP путем ввода номеров ячеек для поиска всего столбца

    Использование относительных позиций в формулах Excel

    Давайте будем гением компьютера.