Office JS:如何添加具有数据绑定的新的RTF内容控件?

时间:2019-06-27 15:13:09

标签: data-binding openxml office-js office-addins word-addins

我正在开发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返回此内容控件?

0 个答案:

没有答案