How to add sections to PowerPoint with MATLAB Report Generator
조회 수: 33 (최근 30일)
이전 댓글 표시
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
채택된 답변
Rahul Singhal
2019년 6월 26일
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:
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:
Hope this helps!
Thanks,
Rahul
댓글 수: 1
Andreas
2023년 2월 10일
Hello Rahul, I didn't get your result and opened my own question to tackle it. If you would give a look I would appreciate it: https://www.mathworks.com/matlabcentral/answers/1910620-powerpoint-api-handling-ppt-sections
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!