我正在开发Word加载项,并使用Office的JavaScript API。我正在尝试使用context.document.contentControls获取文档的所有内容控件。
Word.run(function (context) {
var contentControls = context.document.contentControls;
return context.sync().then(function () {
var items = contentControls.items;
});
});
但是,此属性仅返回富文本内容控件,如here所示。但是我还需要一些纯文本内容控件。我的普通内容控件是通过以下方式插入的:
var contentControlXml = GetCCXml();
Office.context.document.setSelectedDataAsync(contentControlXml, { coercionType: 'ooxml' },
function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("Insert Ok");
}
}
});
contentControlXml包含这样的字符串:
<w:sdt>
<w:sdtPr>
<w:alias w:val="MyContentControl"/>
<w:tag w:val="MyTag"/>
<w:id w:val="0"/>
<w:showingPlcHdr/>
<w:dataBinding w:xpath="/MyRoot[1]/MyPath[1]" w:storeItemID="1234"/>
<w:text/>
</w:sdtPr>
<w:sdtContent>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal"/>
</w:pPr>
<w:r>
<w:t></w:t>
</w:r>
</w:p>
</w:sdtContent>
</w:sdt>
这只是我的Ooxml的主要部分。但是,我尝试从xml中删除<w:text/>
,以便使用富文本内容控件而不是纯文本控件。但是,在重建并重新启动应用程序并再次添加新的内容控件之后,当我从docx中提取document.xml时,我看到内容控件仍然包含<w:text/>
,即使我将其从xml中删除到插入。
我如何设法从context.document.contentControls
返回此内容控件?