Office js 如何使用Office Web加载项下载文件

Office js 如何使用Office Web加载项下载文件,office-js,Office Js,只要无法使用Javascript API for office在客户端工作簿中“加载”Excel模板,是否可以通过浏览器的加载项下载该文件?因此,用户可以手动打开它。这与您使用任何web应用程序下载文件时所做的差不多。我将在使用showdialog API显示的对话框中公开该功能,并确保从中下载文件的域位于外接程序清单中的应用程序域条目中。有一个document.getFileAsync()API,允许您获取文件的所有片段。有关详细信息,请参见此处该库运行良好。您可以执行以下操作: sa

只要无法使用Javascript API for office在客户端工作簿中“加载”Excel模板,是否可以通过浏览器的加载项下载该文件?因此,用户可以手动打开它。

这与您使用任何web应用程序下载文件时所做的差不多。我将在使用showdialog API显示的对话框中公开该功能,并确保从中下载文件的域位于外接程序清单中的应用程序域条目中。

有一个document.getFileAsync()API,允许您获取文件的所有片段。有关详细信息,请参见此处

该库运行良好。

您可以执行以下操作:

    saveFileToDesktop(blob, fileName) {
        if (window.navigator.msSaveOrOpenBlob) { // IE only
            window.navigator.msSaveOrOpenBlob(blob, fileName);
        } else {
            const link = document.createElement('a');
            link.href = window.URL.createObjectURL(blob);
            link.download = fileName;
            link.click();
        }
    }
这在以下组合中对我有效:

客户端Windows Office(Excel、PowerPoint)和IE(因为它在任务窗格中使用)

客户端Office Online(Excel、PowerPoint)和IE、Chrome、Safari、Firefox

不在以下地点工作:

客户端Mac Office(Excel、PowerPoint)和Safari(因为它在任务窗格中使用)

似乎下载顺利,但我无法访问该文件,甚至尝试更改首选项
文件下载位置:请求每次下载等,但无法使其工作。

作为解决方案,您可以打开新窗口并将文件url传递到后端:

window.open("https://yourbackend.com?fileurl="+encode(url)) 
后端应该充当代理并返回带有重定向的响应。
这样,Outlook桌面客户端将在浏览器中打开一个新选项卡,并在其中显示/下载您的文件。

在最新的Windows 10更新之后,
navigator.msSaveOrOpenBlob
在Outlook桌面客户端中不再存在。@mirik-在新的Windows更新之后,我们的加载项现在也被破坏。你能想出这个问题的另一个解决办法吗?你能解释一下吗。可以举个例子。