2015-05-21 36 views
2

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

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

我试过使用HTML5 FileReader()对象,但这只适用于从文件输入控件中选择的文件。我试着操作一个隐藏的文件输入控件,以便它自动使用当前文档,但出于安全原因,JavaScript可以理解地阻止您这么做。我可以让用户浏览他们当前正在使用的文档,但这会是一种糟糕的用户体验。

因此,我尝试使用ActiveXObject('Scripting.FileSystemObject'),但不允许在任何标签窗格应用程序中使用ActiveX,无论当前的安全设置在IE中。

我还有其他选择吗?

+0

你想获得整个文件还是只是内容? – marcel

+0

@marcel我真正需要的是访问自定义属性。由于在Office.js中没有这个选项,我试图加载整个文件,解压缩并读取custom.xml。 –

+0

您可以通过Office.context.document.getFilePropertiesAsync([,options],callback)访问属性;' – marcel

回答

1

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

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

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

我猜Microsoft未来会支持getFileAsync()。

+0

所以答案是目前没有办法做到这一点?这当然似乎是我的经验。 –

+0

你说得对。现在没有办法做到这一点。 –

相关问题