MATLAB Answers

How to add sections to PowerPoint with MATLAB Report Generator

26 views (last 30 days)
In order to achieve cross platform capability, I've been using the MATLAB Report Generator toolbox to manipulate PowerPoint presentation programmatically. I was going to organize the presentation structure by adding sections to it.
Here is an equivalent MWE with ActiveX on Windows:
% invoke activex server
ppt = actxserver('powerpoint.application');
% add a presentation
ppt.Presentations.Add();
% choose a layout
layout = ppt.ActivePresentation.SlideMaster.CustomLayouts.Item(1);
% add slide 1 and section 1
ppt.ActivePresentation.Slides.AddSlide(1, layout);
ppt.ActivePresentation.SectionProperties.AddBeforeSlide(1,'mySection1');
% add slide 2 and section 2
ppt.ActivePresentation.Slides.AddSlide(2, layout);
ppt.ActivePresentation.SectionProperties.AddBeforeSlide(2,'mySection2');
I would like to get the same thing done with Report Generator..

  0 Comments

Sign in to comment.

Accepted Answer

Rahul Singhal
Rahul Singhal on 26 Jun 2019
Hi Ruixin,
Currently, the MATLAB Report Generator's PPT API does not support creating sections programmatically.
The team plans to add this functionality in the future releases.
Alternatively, as a workaround, you can add sections in your template presentation with maybe a single slide in each section, for e.g., a Section Header slide. Then generate your new presentation using this template presentation and add the new slides using the index number, which represents the position of this new slide in the generated presentation. See https://www.mathworks.com/help/rptgen/ug/mlreportgen.ppt.presentation.add.html
For example, create a template presentation, named input.pptx, with 2 sections where each section consists of a single section header slide, as shown below:
section.JPG
Now create your output presentation using this input presentation as shown below:
ppt = mlreportgen.ppt.Presentation("output.pptx", "input.pptx");
open(ppt);
% Add slide to Section1.
% Specify the index as 2 as this needs to be inserted after the
% Section 1 header slide which is present at index 1.
sect1Slide = add(ppt,'Title and Content',2);
% Add slide to Section2.
% Specify the index as 4 as this needs to be inserted after the
% Section 2 header slide which is now present at at index 3.
sect2Slide = add(ppt,'Title and Content',4);
close(ppt);
rptview(ppt);
The generated output presentation looks like:
output.JPG
Hope this helps!
Thanks,
Rahul

  0 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!