只要无法使用Office的Javascript API在客户端的工作簿中“加载” Excel模板,是否可以通过浏览器的“加载项”下载文件?因此用户可以手动打开它。
几乎可以使用任何Web应用程序下载文件。我会在使用showdialog 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(因为在任务窗格中使用了)
客户端在线(Excel,PowerPoint)和IE,Chrome,Safari,Firefox
不工作于:
Client Mac Office(Excel,PowerPoint)和Safari(因为在任务窗格中使用了)
似乎下载正常,但是即使尝试更改首选项,我也无法访问该文件文件下载位置:要求每次下载等,但无法正常进行。
有一个document.getFileAsync()API,可让您获取文件的所有切片。有关详细信息,请参见此处https://dev.office.com/reference/add-ins/shared/document.getfileasync
download库,运行良好。
作为解决方案,您可以打开新窗口,然后将文件url传递到后端:
window.open("https://yourbackend.com?fileurl="+encode(url))
后端应作为代理并通过重定向返回响应。这样,Outlook桌面客户端将在浏览器中打开一个新选项卡,并在其中显示/下载您的文件。