Ms word 在Office.js Word加载项中将上下文切换到新文档

Ms word 在Office.js Word加载项中将上下文切换到新文档,ms-word,office365,office-js,office-addins,Ms Word,Office365,Office Js,Office Addins,我有一个功能,需要将现有文档中的数据复制到基于新模板的新文档中。问题是,当我想加载新创建对象的文档并插入数据时,它会将其插入现有文档中。看起来它不会将上下文切换到要使用的新文档,但我找不到原因。一切正常,没有错误,只是数据出现在错误的文档中 这是我正在使用的代码: public convertdoc() { this.getText('htmlsource', 'template.txt').subscribe((template) => { Word.run(asyn

我有一个功能,需要将现有文档中的数据复制到基于新模板的新文档中。问题是,当我想加载新创建对象的文档并插入数据时,它会将其插入现有文档中。看起来它不会将上下文切换到要使用的新文档,但我找不到原因。一切正常,没有错误,只是数据出现在错误的文档中

这是我正在使用的代码:

public convertdoc() {
    this.getText('htmlsource', 'template.txt').subscribe((template) => {
      Word.run(async (context) => {
        const data = context.document.body;
        const xml = data.getOoxml();
        await context.sync();
        const val = xml.value;
        const newDoc = context.application.createDocument(template);
        context.load(newDoc);
        await context.sync();
        newDoc.open();
        await newDoc.context.sync();
        const body = newDoc.context.document.body; 
        await newDoc.context.sync();
        body.insertOoxml(val, 'End');
      }).catch((err) => { this.log('Error: ' + err.message); });
    });
  }
是我忽略了什么,还是newDoc.context不是这样工作的?如何使用新上下文访问新文档的正文


顺便说一句,getText函数是一个简单的ajax函数,它返回一个base64编码的.dotx文件。log函数只是将文本添加到任务窗格中元素的innerHtml中

这是不受支持的,这是由设计行为决定的。您只能操作插入web加载项的当前文档的内容。它无法执行跨文档操作。

我最终将ooXML从当前文档写入本地存储,然后从任务窗格设置为“自动打开”的模板中打开新文档。任务窗格然后检查本地存储中是否有内容,并将其粘贴到新文档中。工作起来很有魅力:

事后看来,这是有道理的。我想我希望通过Word.application或newdoc上下文,它仍然是可能的。我希望他们不久将再次开始开发Office.js for Word,这样我就可以在当前文档中操作模板和样式定义。