Обновите содержание презентации программно

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

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

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

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

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

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

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

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

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

  • Сгенерируйте представление.

Обновления представления

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

  • Замените изображение на втором понижении.

  • Замените текст на третьем понижении.

  • Замените таблицу на четвертом понижении.

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

Вот обновленное представление.

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

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

  1. Откройте представление myNewPPTPresentation. В PowerPoint нажмите View> Normal.

  2. Просмотрите имена объектов содержания в слайдах. Во вкладке Home нажмите Select> Selection Pane. Когда вы кликаете по содержимому в понижении, панель Selection подсвечивает имя объекта содержания.

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

    • Во втором понижении поменяйте имя объекта Title на Histogram и имя объекта Content к HistBins.

    • В третьем понижении измените Title на RelatedFuncs. Измените Content на FuncList.

    • В четвертом понижении измените Content на ParamTable.

Импортируйте пакет API PPT

Все имена классов API PPT включают префиксный mlreportgen.ppt. Чтобы избежать потребности включать префикс в ваш код, вставьте этот оператор в начале программы API PPT.

import mlreportgen.ppt.*;

Примечание

Строка import является первой строкой в примере программы. Этот пример создает программу API PPT в разделах и поэтому не показывает команду import. Чтобы просмотреть полную программу, кликните по myUpdatedPresentation программе.

Создайте объект Presentation

Создайте объект Presentation. Задайте:

  • myUpdatedPresentation.pptx как выходной файл для сгенерированного представления.

  • myNewPPTPresentation.pptx как шаблон PowerPoint. Используйте файл презентации, который вы хотите обновить как файл шаблона.

slidesFile = 'myUpdatedPresentation.pptx';
slides = Presentation(slidesFile,'myNewPPTPresentation.pptx');

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

Замените изображение

Измените заголовок второго понижения. Создайте объект Picture заменить существующее изображение. Можно использовать метод find с объектом Presentation найти объекты содержания под названием HistBins и Histogram (уникальные имена, вы задали использование PowerPoint).

histTitle = Paragraph('Histogram with Specified Bin Edges');
replace(slides,'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(slides,'HistBins',plotEdges)

Замените текст на ссылки

Измените заголовок третьего понижения. Создайте текст, чтобы заменить существующий текст. Текст включает ссылки на онлайн-документацию MathWorks®. Добавьте объекты ExternalLink к объектам Paragraph и замените содержимое понижения использование массива ячеек объектов Paragraph.

funcsTitle = Paragraph('Related Functions');
replace(slides,'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/fewerbins.html','fewerbins');
append(fewerbins,fewerbinsLink);

replace(slides,'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(slides,'ParamTable');
replace(slides,'ParamTable',table2);

Вставьте новое понижение

Можно использовать API PPT, чтобы вставить новое понижение в существующую презентацию, и можно задать числовое местоположение понижения. Например, этот код делает новое понижение пятым понижением в представлении.

newSlide = add(slides,'Title and Content',5);

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

slides.Children(2).Name = 'ReferenceSlide';

refSlide = find(slides,'ReferenceSlide');
introSlide = add(slides,'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(slides);

Откройте представление файл myUpdatedPresentation.pptx. На платформе Windows® можно открыть представление в MATLAB:

if ispc
    winopen(slidesFile);
end

Код для myUpdatedPresentation

Вот полная программа API PPT, чтобы создать представление myUpdatedPresentation.

Примечание

Этот код требует, чтобы файл myNewPPTPresentation.pptx был в вашей текущей папке. Чтобы сгенерировать то представление, кликните по myNewPPTPresentation программе и выполните код в MATLAB. Прежде чем вы запустите код для myUpdatedPresentation, быть уверенными, что существующая презентация включает изменения, описанные в Настроенный Существующая презентация.

import mlreportgen.ppt.*;

slidesFile = 'myUpdatedPresentation.pptx';
slides = Presentation(slidesFile,'myNewPPTPresentation.pptx');

histTitle = Paragraph('Histogram with Specified Bin Edges');
replace(slides,'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(slides,'HistBins',plotEdges)

funcsTitle = Paragraph('Related Functions');
replace(slides,'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/fewerbins.html','fewerbins');
append(fewerbins,fewerbinsLink);

replace(slides,'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(slides,'ParamTable');
replace(slides,'ParamTable',table2);


slides.Children(2).Name = 'ReferenceSlide';

refSlide = find(slides,'ReferenceSlide');
introSlide = add(slides,'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(slides);
if ispc
    winopen(slidesFile);
end

Похожие темы