Можно использовать PPT API для программного обновления содержимого в существующем PowerPoint® презентация.
Этот пример обновляет содержимое в презентации PowerPoint myPresentation
. Чтобы сгенерировать презентацию, запустите пример в Создание презентации программно. Несмотря на то, что презентация создается программно, после ее генерации презентация подобна любой другой презентации PowerPoint. Презентация включает четыре слайдов:
Заголовок слайд с заголовком Create Histogram Plots
Гистограмма вектора
Слайд с заголовком What You Can Do with histogram
Параметры функции гистограммы
Чтобы использовать PPT API для программного обновления содержимого в существующей презентации PowerPoint, вы:
Настройте презентацию PowerPoint, назвав объекты содержимого, которые вы хотите заменить. Если необходимо добавить новое содержимое, вставьте заполнители в презентацию для этого содержимого.
В MATLAB®, импортируйте mlreportgen.ppt
Пакет PPT API.
Создайте Presentation
объект, который использует существующую презентацию в качестве шаблона для обновленной версии.
Замените существующее содержимое слайда, которое необходимо обновить.
Добавить слайды все новые слайды.
Сгенерируйте презентацию.
В этом примере вы используете PPT API, чтобы внести эти изменения в myPresentation
презентация:
Замените изображение на втором слайде.
Замените текст на третьем слайде.
Замените таблицу на четвертом слайде.
Вставьте новый слайд перед слайдом с графиком.
Вот обновленная презентация:
Программа PPT API использует шаблон PowerPoint, чтобы сгенерировать презентацию. При программном обновлении существующей презентации PowerPoint используйте эту презентацию в качестве шаблона для обновленной презентации. Как обновить содержимое в Slide
используйте PPT API.
Откройте myPresentation
презентация. В PowerPoint щелкните View > Normal.
Просмотрите имена объектов содержимого слайдов. На вкладке Home щелкните Select > Selection Pane. При клике по содержимому на слайде на панели Selection подсвечивается имя объекта содержимого.
Переименуйте объекты содержимого. На панели Selection PowerPoint щелкните в поле имени содержимого и замените текущее имя нужным именем. Используйте эти уникальные имена для обновления объектов содержимого.
На втором слайде измените Title
имя объекта в Histogram
и Picture
имя объекта в HistBins
.
На третьем слайде измените Title
на RelatedFuncs
. Изменение Content
на FuncList
.
На четвертом слайде измените Table
на ParamTable
.
Все имена классов PPT API включают префикс mlreportgen.ppt
. Чтобы избежать необходимости включения префикса в код, вставьте этот оператор в начале программы PPT API.
import mlreportgen.ppt.*
Примечание
The import
линия является первой линией в примере программы. Этот пример создает программу PPT API в разделах и, следовательно, не показывает import
команда. Чтобы просмотреть полную программу, щелкните myUpdatedPresentation.
Presentation
ОбъектСоздайте Presentation
объект. Задайте:
myUpdatedPresentation.pptx
как файл выхода для сгенерированной презентации.
myPresentation.pptx
как шаблон PowerPoint. Используйте файл презентации, который необходимо обновить, в качестве файла шаблона.
ppt = Presentation('myUpdatedPresentation.pptx','myPresentation.pptx');
Установка другого имени для файла выхода сохраняет исходную презентацию. Если необходимо перезаписать существующую презентацию, можно использовать имя файла шаблона в качестве имени файла выхода.
Измените заголовок второго слайда. Создайте Picture
объект для замены существующего изображения. Можно использовать find
метод с Presentation
объект для поиска объектов содержимого с именем HistBins
и Histogram
(уникальные имена, заданные вами с помощью PowerPoint).
histTitle = Paragraph('Histogram with Specified Bin Edges'); replace(ppt,'Histogram',histTitle); x = randn(1000,1); edges = [-10 -2:0.25:2 10]; h = histogram(x,edges); saveas(gcf,'hist_plot.png'); plotEdges = Picture('hist_plot.png'); replace(ppt,'HistBins',plotEdges);
Измените заголовок третьего слайда. Создайте текст для замены существующего текста. Текст включает ссылки на MathWorks® онлайн-документация. Добавление ExternalLink
объекты к Paragraph
Объектами и замените содержимое слайда с помощью массива ячеек Paragraph
объекты.
funcsTitle = Paragraph('Related Functions'); replace(ppt,'RelatedFuncs',funcsTitle); histCounts = Paragraph(); histCountsLink = ExternalLink... ('https://www.mathworks.com/help/matlab/ref/histcounts.html','histcounts'); append(histCounts,histCountsLink); fewerbins = Paragraph(); fewerbinsLink = ExternalLink... ('https://www.mathworks.com/help/matlab/ref/matlab.graphics.chart.primitive.histogram.fewerbins.html','fewerbins'); append(fewerbins,fewerbinsLink); replace(ppt,'FuncList',{histCounts,fewerbins});
Чтобы создать таблицу, создайте Table
объект. В Table
конструктор, можно задать массив ячеек значений для камер таблицы. Чтобы получить полужирный текст для верхней строки, включите Paragraph
объекты как первые три элемента массива ячеек. Затем замените таблицу.
long = Paragraph('Long Name'); long.Bold = true; short = Paragraph('Short Name'); short.Bold = true; rgb = Paragraph('RGB triplet'); rgb.Bold = true; table2 = Table({long,short,rgb;'yellow','y','[1 1 0]';'green','g','[1 0 1] '}); contents = find(ppt,'ParamTable'); replace(ppt,'ParamTable',table2);
Можно использовать PPT API, чтобы вставить новый слайд в существующую презентацию и указать численное расположение слайда. Для примера этот код делает новый слайд пятым слайдом в презентации.
newSlide = add(ppt,'Title and Content',5);
Однако, чтобы иметь слайд, предшествующий конкретному слайду, даже если позже вы добавляете или удаляете другие слайды, можно задать ссылку слайд. Чтобы использовать этот подход при обновлении существующей презентации PowerPoint, используйте PPT API, чтобы назвать ссылочный слайд. При вставке нового слайда используйте имя ссылочного слайда.
ppt.Children(2).Name = 'ReferenceSlide'; refSlide = find(ppt,'ReferenceSlide'); introSlide = add(ppt,'Title and Content',refSlide); contents = find(introSlide,'Title'); replace(contents(1),'Histogram Plots'); introText = Paragraph('You can use the '); code = Text('histogram'); code.Font = 'Courier New'; append(introText,code); append(introText,' function to create many types of plots.'); contents = find(introSlide,'Content'); replace(contents(1),introText);
Сгенерируйте презентацию PowerPoint. Использование close
метод с Presentation
объект. Просмотр презентации.
close(ppt); rptview(ppt);
myUpdatedPresentation
Вот полная программа PPT API для создания myUpdatedPresentation
презентация.
Примечание
Этот код требует, чтобы myPresentation.pptx
Файл находитесь в текущей папке. Чтобы сгенерировать эту презентацию, запустите пример в Создать презентацию программно. Прежде чем запускать код для myUpdatedPresentation
убедитесь, что существующая презентация включает изменения, описанные в разделе «Настройка существующей презентации».
import mlreportgen.ppt.*; ppt = Presentation('myUpdatedPresentation.pptx','myPresentation.pptx'); histTitle = Paragraph('Histogram with Specified Bin Edges'); replace(ppt,'Histogram',histTitle); x = randn(1000,1); edges = [-10 -2:0.25:2 10]; h = histogram(x,edges); saveas(gcf,'hist_plot.png'); plotEdges = Picture('hist_plot.png'); replace(ppt,'HistBins',plotEdges) funcsTitle = Paragraph('Related Functions'); replace(ppt,'RelatedFuncs',funcsTitle); histCounts = Paragraph(); histCountsLink = ExternalLink... ('https://www.mathworks.com/help/matlab/ref/histcounts.html','histcounts'); append(histCounts,histCountsLink); fewerbins = Paragraph(); fewerbinsLink = ExternalLink... ('https://www.mathworks.com/help/matlab/ref/matlab.graphics.chart.primitive.histogram.fewerbins.html','fewerbins'); append(fewerbins,fewerbinsLink); replace(ppt,'FuncList',{histCounts,fewerbins}); long = Paragraph('Long Name'); long.Bold = true; short = Paragraph('Short Name'); short.Bold = true; rgb = Paragraph('RGB triplet'); rgb.Bold = true; table2 = Table({long,short,rgb;'yellow','y','[1 1 0]'; 'green', 'g','[1 0 1] '}); contents = find(ppt,'ParamTable'); replace(ppt,'ParamTable',table2); ppt.Children(2).Name = 'ReferenceSlide'; refSlide = find(ppt,'ReferenceSlide'); introSlide = add(ppt,'Title and Content',refSlide(1)); contents = find(introSlide,'Title'); replace(contents(1),'Histogram Plots'); introText = Paragraph('You can use the '); code = Text('histogram '); code.Style = {FontFamily('Courier New')}; append(introText,code); append(introText,'function to create many types of plots.'); contents = find(introSlide,'Content'); replace(contents(1),introText); close(ppt); rptview(ppt);