如何使用MATLAB报告生成器DOM API访问具有多个部分的文档头部的孔?

13次意见(过去30天)
我有一个带有多个部分的Word文档模板,每个部分都有自己的带有不同孔的标题。我如何访问不同部分的标题孔?

接受的答案

MathWorks支金宝app援小组
头中的孔可以从当前DOCX部分访问。你可以使用下面的方法来访问第一个section的头信息:
>> d = mlreportgen.dom.Document(“mydoc”,“多克斯”,“WordTemplate.dotx”);
> >开放(d);
>> docHeaders = d.CurrentDOCXSection.PageHeaders;
“docHeaders”将是一个带有“PageType”属性“first”、“default”或“even”的头部数组。这些类型的含义说明在以下链接:
你可以为你想要的页面类型选择页眉,然后使用"moveToNextHole"方法来通过页眉中的孔:
>> docHead1 = docHeaders(1);
>> holeId = docHead1.moveToNextHole;
你也可以通过下面的孔在主体部分移动:
>> nextHoleID = d.moveToNextHole;
如果文档有多个节,那么当你在文档中穿过洞时,你会遇到ID为“#sect#”的洞,其中“”是节号。一旦文档的"CurrentHoleId"有了这个ID,那么你就可以使用"d.CurrentDOCXSection"以与上面相同的方式访问新节的标题。
页脚也可以用类似的方法访问
>> docFooters = d.CurrentDOCXSection.PageFooters;

更多答案(1)

马可·马顿斯
马可·马顿斯 2021年9月10日
编辑:马可·马顿斯 2021年9月10日
在Matlab 2021中,代码略有不同;我是这样做的:
d = mlreportgen.dom.Document(“mydoc”,“多克斯”,“WordTemplate.dotx”);
开放(d);
docHeaders = d.CurrentPageLayout.PageHeaders;头文件%
docFooters = d.CurrentPageLayout.PageFooters;页脚%
因此,我使用的不是CurrentDOCXSection,而是CurrentPageLayout(检查变量d的内容,你会发现要使用哪一个)。CurrentDOCXSection不存在,即使我在模板中有多个节中断。
之后,你可以这样做:
Foot = docFooters(1);
moveToNextHole(脚);这里不要用d !
追加(脚,'一些页脚文本');%相同
通过访问变量“Foot”,你可以找到你在哪个洞工作;当有多个时非常有用。

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!