我正在使用Office JS开发Excel加载项,用户可以决定从远程服务器API打开文档。在这种情况下,我需要从服务器API接收文件并在Excel中打开它。
我已经找到了这个答案:Programatically open a excel document using javascript office api
所以我看到API不允许这样做,答案建议使用JS触发下载。
所以我在插件页面添加了iframe
:
<iframe id="download" width="1" height="1" style="display:none"></iframe>
要触发我正在执行的文档下载:
document.getElementById("download").src = downloadURL;
在线尝试时效果很好(Office 365)。
但它没有使用桌面版下载文档。
如何在桌面Excel应用程序中创建解决方案?
答案 0 :(得分:1)
目前,Excel中没有API允许您以编程方式创建/打开文档。 Word 确实拥有它,并且有一个建议 - 目前正在调查中 - 也为Excel做同样的事情(https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/15034512-ability-to-open-replace-workbook-with-excel-js-api)。但是,我们还没有可以分享的ETA。
话虽这么说,你绝对可以弹出一个“另存为”对话框。事实上,如果您看过Script Lab,我们的“出版物出口”就是这样做的。
对于Script Lab,我们使用FileSaver NPM package。如果您想查看使用它的Script Lab代码,请参阅this file,搜索FileSaver.saveAs
周围的区域。但请注意,保存为对话框似乎无法在Mac或iOS上正常工作,因此目前我们将此功能仅限于桌面和Office Online(您可以在该方法的开头看到平台检查)。
希望这有帮助!