2015-05-21 40 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

你說得對。現在沒有辦法做到這一點。 –

相關問題