我正在为Word 2016/365开发一个插件来获取Word模板,并且能够通过contentcontrols改变页眉和页脚中的信息。首先,只有两个模板可供使用。我正在使用ooxml并通过XMLHttpRequest获取xmldocument:
//Function to get ooxmldocument via XMLHttpRequest
function getTemplate(fileName) {
var myOOXMLRequest = new XMLHttpRequest();
var myXML;
myOOXMLRequest.open('GET', fileName, false);
myOOXMLRequest.send();
if (myOOXMLRequest.status === 200) {
myXML = myOOXMLRequest.responseText;
console.log('myXML VariabelData: ', myXML);
return myXML;
}
return "" ;
}
我通过以下方式插入模板:
// Insert a 'default' template with logo and contentControllers in header and footer of the xml
function insertDefaultTemplate() {
Word.run(function (context) {
var body = context.document.body;
// Synchronize the document state by executing the queued commands, and return a promise to indicate task completion.
return context.sync().then(function () {
var t = getTemplate('/Content/Templates/BrevmallMD.xml', 'Replace');
body.insertText("Formaterar dokument...", Word.InsertLocation.start);
return context.sync().then(function () {
body.insertOoxml(t, Word.InsertLocation.replace);
return context.sync().then(function () {
showNotification("Standardmallen är införd!", "Välj användaruppgifter.");
});
});
})
}).catch(function (error) {
errorHandler();
})
}
使用其他一些函数,我可以通过按钮和jQuery将新信息插入到contentcontrollers(从一开始就在文档中)。
问题是当您想要再次插入文档时。它不会按原样加载原始文档。它似乎在插件的现有一个precent中合并。
我希望能够按原样加载新文档,不加载文档然后将其与现有文档合并。我已经看到很多关于办公室devcenter的例子,在主体和部分放入东西,但不是整个文件。我该怎么做=)?