3

我正在 Excel 中开发一个需要读取当前文档的选项卡窗格应用程序。在 Word 中,Office JavaScript API 具有方法 Office.context.document.getFileAsync(),但在 Excel 中不可用。

我可以用 Office.context.document.getFileProperties() 获取文档的 URL,然后我想我可以用它来读取文件。

我尝试使用 HTML5 FileReader() 对象,但这仅适用于从文件输入控件中选择的文件。我尝试操作隐藏文件输入控件,使其自动使用当前文档,但出于安全原因,JavaScript 可以理解地阻止您这样做。我可以要求用户浏览到他们当前正在使用的文档,但这将是一个糟糕的用户体验。

所以我尝试使用 ActiveXObject('Scripting.FileSystemObject') 但在选项卡窗格应用程序中根本不允许使用 ActiveX,无论 IE 中的当前安全设置如何。

我还有什么其他选择?

4

1 回答 1

2

根据 API 路线图,Office.context.document.getFileAsync() 目前在 Excel 中不可用。

我认为使用 getFilePropertiesAsync() 是不可行的。它只返回 URL。通常浏览器禁止开发者接触文件系统中的任何内容。因此,很难在 JavaScript 代码中访问本地文件系统。

此外,该文件可能不在本地文件系统中。例如,它可以托管在 Onedrive 或 SharePoint 中。getFilePropertiesAsync() 应该在 Onedrive/SharePoint 中返回其真实 URL,而不是本地文件系统。

我猜微软将来会支持 getFileAsync() 。

于 2015-06-17T18:54:49.260 回答