我有一个Word添加,可以将Word文档加载到当前文档中。使用下面的代码就可以了。
var myOOXMLRequest = new XMLHttpRequest();
var myXML;
myOOXMLRequest.open('GET', 'template.xml', false);
myOOXMLRequest.send();
if (myOOXMLRequest.status === 200) {
myXML = myOOXMLRequest.responseText;
}
Word.run(function (context) {
Office.context.document.setSelectedDataAsync(myXML, { coercionType: 'ooxml' });
});

现在我在Word文档中添加了一些内容控件,我将其保存为template.xml(用作我的模板)。当我现在将包含内容控件的Word文档保存为XML,并尝试通过上面的代码片段加载它时,一切正常,但内容控制已经消失!我无法从Word访问它们,也无法通过Javascript访问它们:
var name = context.document.contentControls.getByTitle('myContentControl');
context.load(name);
return context.sync().then(function () {
var nameNew = name.items[0];
nameNew.insertText("Test", "Replace");
return context.sync().then(function () {
});
});

这是一个错误还是这不可能?我还想过将一些像## myValue ##这样的占位符放到Word模板中,然后用值取代它们,但是如果可能的话,我宁愿用ContentControls来做。
修改 以下是我从模板中创建的XML:http://pastebin.com/NX0ZqLiM
我只是将Word文档保存为XML,然后按上述方法加载,就创建了XML。有趣的是,当我现在运行示例时,我可以在Word中看到内容控件。但是当我尝试通过Javascript访问它们时,ContentControl集合始终为空。我使用了此处https://dev.office.com/reference/add-ins/word/contentcontrol?product=word的代码示例来尝试访问内容控件,但项目集合始终为空。
如果您需要更多信息,请与我们联系。