如何在word插件中打开新的Word docx文档

问题描述 投票:0回答:3

我使用word javascript api开发了一个word插件。我的文档 .docx 文件位于服务器上,我需要通过单击加载项中的按钮将该 .docx 文档作为新的 Word 文档打开。

请指导我如何在 Word 插件中打开新文档。

谢谢。

ms-word ms-office office365 office-js javascript-api-for-office
3个回答
11
投票

我们在 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); });


    }


1
投票

至少目前,基于 JavaScript 的 Office.js API 不支持在新实例(即新的独立 Word 窗口)中打开文档。您始终从

Context
对象开始,这将使您可以通过
Context.document
属性访问当前活动文档。

您可以做的是将内容插入到现有文档中,例如通过

body.insertOoxml
方法。

目前,与经典的 COM API 相比,Office.js API 仍然受到限制。如果您需要完整的功能集,您现在仍然可以考虑开发 COM 或 VSTO 解决方案。唯一的缺点是您的加载项无法在 Windows 桌面以外的任何平台上运行。


0
投票

在这个问题问了好几年之后,今天我们有一个非常简单的方法在 word javascript API 中做到这一点。只需使用 Word.Application 类中的方法即可。

对于您所描述的用例,您可以找到一种使用其中任一方法的方法

  • .createDocument(base64File: string)
    :创建 Word.CreatedDocument 类对象,类似于 Word.Document 类。
  • openDocument(filePath: string)
    :打开一个新的 Word 选项卡或窗口,其中包含路径中的文件(可能是本地路径,甚至是 URL,具体取决于您的环境用例。

仅供记录,

Word.Application
类的其他方法都很棒并且非常方便,例如
retrieveStylesFromBase64(base64File)

© www.soinside.com 2019 - 2024. All rights reserved.