Update Presentation Content Programmatically
R2026bYou can use the MATLAB® API for PowerPoint® (PPT API) to update content programmatically in an existing PowerPoint presentation.
Generate the Existing Presentation
This example updates content in a PowerPoint presentation myPresentation. To generate the
presentation, run the example in Create a Presentation Programmatically. Although you create the presentation
programmatically, after you generate it, the presentation is like any other PowerPoint presentation. The presentation includes four slides:
Title slide with the title
Create Histogram PlotsA histogram of a vector
Slide with the title
What You Can Do with histogramHistogram function parameters

To use the PPT API to update content in an existing PowerPoint presentation programmatically, you:
Set up the PowerPoint presentation by naming content objects that you want to replace. If you want to add new content, insert placeholders in the presentation for that content.
In MATLAB, import the
mlreportgen.pptPPT API namespace.Create a
Presentationobject that uses the existing presentation as the template for updated version.Replace any existing slide content that you want to update.
Add slides any new slides.
Generate the presentation.
Updates to the Presentation
In this example, you use the PPT API to make these changes to the
myPresentation presentation:
Replace the picture on the second slide.
Replace the text on the third slide.
Replace the table on the fourth slide.
Insert a new slide before the slide with the plot.
Here is the updated presentation:

Set Up the Existing Presentation
A PPT API program uses a PowerPoint template to generate a presentation. When you update an existing
PowerPoint presentation programmatically, use that presentation as the template for
the updated presentation. To update content in the Slide objects, use
the PPT API.
Open the
myPresentationpresentation. In PowerPoint, click View > Normal.View the names of content objects in the slides. In the Home tab, click Select > Selection Pane. When you click content in a slide, the Selection pane highlights the name of the content object.

Rename content objects. In the PowerPoint Selection pane, click in the content name box and replace the current name with the name you want. Use these unique names to update content objects.
In the second slide, change the
Titleobject name toHistogramand thePictureobject name toHistBins.In the third slide, change
TitletoRelatedFuncs. ChangeContenttoFuncList.In the fourth slide, change
TabletoParamTable.
Import the PPT API namespace
All PPT API class names include the prefix mlreportgen.ppt. To
avoid the need to include the prefix in your code, insert this statement at the
beginning of a PPT API program.
import mlreportgen.ppt.*Note
The import line is the first line in the example program. This
example creates a PPT API program in sections and therefore does not show the
import command. To view the complete program, click myUpdatedPresentation
program.
Create the Presentation Object
Create a Presentation object. Specify:
myUpdatedPresentation.pptxas the output file for the generated presentation.myPresentation.pptxas the PowerPoint template. Use the presentation file that you want to update as the template file.
ppt = Presentation("myUpdatedPresentation.pptx","myPresentation.pptx"); open(ppt);
Specifying a different name for the output file preserves the original presentation. If you want to overwrite the existing presentation, you can use the template file name as the file name for the output file.
Replace a Picture
Change the title of the second slide. Create a Picture object to
replace the existing picture. You can use a find method with the
Presentation object to find content objects named
HistBins and Histogram (the unique names you
specified using 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);
Replace Text with Links
Change the title of the third slide. Create text to replace the existing text. The
text includes links to the MathWorks® online documentation. Append ExternalLink objects to
Paragraph objects, and replace the slide content using a cell
array of the Paragraph objects.
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});
Replace a Table
To create a table, create a Table object. In the
Table constructor, you can specify a cell array of values for the
table cells. To get bold text for the top row, include Paragraph
objects as the first three elements of the cell array. Then replace the table.
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);
Insert a New Slide
You can use the PPT API to insert a new slide in an existing presentation and you can specify the numerical location of the slide. For example, this code makes a new slide the fifth slide in a presentation.
newSlide = add(ppt,"Title and Content",5);However, to have a slide precede a specific slide, even if later you add or remove other slides, you can specify a reference slide. To use this approach when updating an existing PowerPoint presentation, use the PPT API to name the reference slide. Use the name of the reference slide when you insert a new slide.
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);
Generate and View the Presentation
Generate the PowerPoint presentation. Use a close method with a
Presentation object. View the presentation.
close(ppt); rptview(ppt);
Code for myUpdatedPresentation
Here is the complete PPT API program to create the
myUpdatedPresentation presentation.
Note
This code requires that the myPresentation.pptx file be in your
current folder. To generate that presentation, run the example in Create a Presentation Programmatically. Before you run the code for
myUpdatedPresentation, be sure that the existing presentation
includes the changes described in Set Up the Existing Presentation.
import mlreportgen.ppt.*; ppt = Presentation("myUpdatedPresentation.pptx","myPresentation.pptx"); open(ppt); 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);
See Also
Topics
- Create a Presentation Programmatically
- Customize a PowerPoint Presentation Template
- View and Modify PowerPoint Template Elements
- Add Slides to Presentation Generator
- Create and Format Text in a Presentation Generator
- Create and Format Paragraphs in a Presentation Generator
- Create and Format Tables in a Presentation Generator
- Create and Format Pictures in a Presentation Generator
- Create and Format Links in a Presentation Generator