我使用word javascript api开发了一个word插件。我的文档 .docx 文件位于服务器上,我需要通过单击加载项中的按钮将该 .docx 文档作为新的 Word 文档打开。
请指导我如何在 Word 插件中打开新文档。
谢谢。
我们在 API 中添加了一种新方法,您可以实际使用它来实现此目的。请注意,这是预览版,这意味着将在几个月内投入生产。您需要最新的 Office 版本并参考我们的预览版 office.js 来尝试。 Office.js 预览版在这里 https://appsforoffice.microsoft.com/lib/beta/hosted/office.js
查看此代码示例,了解它是多么容易实现。
function onaddOpenDoc() {
Word.run(function (context) {
// this getDocumentAsBase64 assumes a valid base64-encoded docx file
var myNewDoc = context.application.createDocument(getDocumentAsBase64());
context.load(myNewDoc);
return context.sync()
.then(function () {
myNewDoc.open();
context.sync();
}).catch(function (myError) {
//otherwise we handle the exception here!
showNotification("Error", myError.message);
})
}).catch(function (myError) { showNotification("Error", myError.message); });
}
至少目前,基于 JavaScript 的 Office.js API 不支持在新实例(即新的独立 Word 窗口)中打开文档。您始终从
Context
对象开始,这将使您可以通过 Context.document
属性访问当前活动文档。
body.insertOoxml
方法。
目前,与经典的 COM API 相比,Office.js API 仍然受到限制。如果您需要完整的功能集,您现在仍然可以考虑开发 COM 或 VSTO 解决方案。唯一的缺点是您的加载项无法在 Windows 桌面以外的任何平台上运行。
在这个问题问了好几年之后,今天我们有一个非常简单的方法在 word javascript API 中做到这一点。只需使用 Word.Application 类中的方法即可。
对于您所描述的用例,您可以找到一种使用其中任一方法的方法
.createDocument(base64File: string)
:创建 Word.CreatedDocument 类对象,类似于 Word.Document 类。openDocument(filePath: string)
:打开一个新的 Word 选项卡或窗口,其中包含路径中的文件(可能是本地路径,甚至是 URL,具体取决于您的环境用例。仅供记录,
Word.Application
类的其他方法都很棒并且非常方便,例如retrieveStylesFromBase64(base64File)