Программно обновляйте содержимое презентации

Можно использовать PPT API для программного обновления содержимого в существующем PowerPoint® презентация.

Сгенерируйте существующую презентацию

Этот пример обновляет содержимое в презентации PowerPoint myPresentation. Чтобы сгенерировать презентацию, запустите пример в Создание презентации программно. Несмотря на то, что презентация создается программно, после ее генерации презентация подобна любой другой презентации PowerPoint. Презентация включает четыре слайдов:

  • Заголовок слайд с заголовком Create Histogram Plots

  • Гистограмма вектора

  • Слайд с заголовком What You Can Do with histogram

  • Параметры функции гистограммы

The generated slides in PowerPoint

Чтобы использовать PPT API для программного обновления содержимого в существующей презентации PowerPoint, вы:

  • Настройте презентацию PowerPoint, назвав объекты содержимого, которые вы хотите заменить. Если необходимо добавить новое содержимое, вставьте заполнители в презентацию для этого содержимого.

  • В MATLAB®, импортируйте mlreportgen.ppt Пакет PPT API.

  • Создайте Presentation объект, который использует существующую презентацию в качестве шаблона для обновленной версии.

  • Замените существующее содержимое слайда, которое необходимо обновить.

  • Добавить слайды все новые слайды.

  • Сгенерируйте презентацию.

Обновления презентации

В этом примере вы используете PPT API, чтобы внести эти изменения в myPresentation презентация:

  • Замените изображение на втором слайде.

  • Замените текст на третьем слайде.

  • Замените таблицу на четвертом слайде.

  • Вставьте новый слайд перед слайдом с графиком.

Вот обновленная презентация:

The second slide is now a description of histogram plots. The plot in the third slide is a histogram with specified bin edges. The fourth slide lists related functions.

Настройка существующей презентации

Программа PPT API использует шаблон PowerPoint, чтобы сгенерировать презентацию. При программном обновлении существующей презентации PowerPoint используйте эту презентацию в качестве шаблона для обновленной презентации. Как обновить содержимое в Slide используйте PPT API.

  1. Откройте myPresentation презентация. В PowerPoint щелкните View > Normal.

  2. Просмотрите имена объектов содержимого слайдов. На вкладке Home щелкните Select > Selection Pane. При клике по содержимому на слайде на панели Selection подсвечивается имя объекта содержимого.

    The PowerPoint Normal View with the "Histogram Of Vector" slide selected and the Picture name highlighted in the Selection pane.

  3. Переименуйте объекты содержимого. На панели Selection PowerPoint щелкните в поле имени содержимого и замените текущее имя нужным именем. Используйте эти уникальные имена для обновления объектов содержимого.

    • На втором слайде измените Title имя объекта в Histogram и Picture имя объекта в HistBins.

    • На третьем слайде измените Title на RelatedFuncs. Изменение Content на FuncList.

    • На четвертом слайде измените Table на ParamTable.

Импорт пакета PPT API

Все имена классов 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);

Похожие темы