2009-11-07 133 views
0

如何讀取存儲爲共享點spfile的excel 2003文檔?使用SPFile.OpenBinary()可以毫無問題地從庫中檢索文檔,然後將其放入MemoryStream中。從存儲在Sharepoint中的Excel文檔中讀取數據?

最初的想法是使用OpenXML來詢問文檔(它將把這個對象類型作爲構造函數),但Excel版本(2003)禁止這樣做。

爲了進一步解決問題,我不能保證在主機上有任何Excel版本,因此可能無法使用互操作程序集。

感謝您的建議或解決方案。


,當我說閱讀,我的意思是從指定範圍中提取數據,單元格引用等。所有我發現(Exceldatareader,NOPI,OpenXML的)的開源庫有一定的限制或其他禁止其使用。例如無法加載啓用宏的工作表

將excel文檔加載到SharePoint文件夾中,該文件夾將該列表作爲SPFile的集合公開。這些文件可以簡單地讀入到MemoryStream中,但是我嘗試過的大多數庫都需要一個文件流構造函數,這意味着要寫入應用程序服務器上的文件系統

我還沒試過SpreadsheetGear,但如果沒有足跡在文件系統上,然後我會看一看,但這不是這個項目的一個選項。我會更新這個線索與我的發現...

我淪落到使用PIA的。髒,髒,髒。

回答

0

我在codeplex上找到了這個[library](http://exceldatareader.codeplex.com/),它似乎能夠讀取任何Excel版本。網絡上可能有更多

+0

我使用目前這個庫沒有任何成功,我不知道我是否就可以寫入到文件系統上的位置。構造函數只接收文件流而不是內存流對象。 – OldBoy 2009-11-07 08:08:00

0

當你說你讀的是什麼意思?開發者似乎在討論這個術語的定義是什麼。無論哪種方式,Excel是否在他們的系統上都不重要,因爲我只能確信,如果這個人想以任何方式查看文件,他們至少需要讀者。所以說,我相信你的恐懼是一個有爭議的問題,使用MemoryStream就足夠了。

1

可以打開一個XLS和從與SpreadsheetGear.Factory.GetWorkbookSet()的存儲器流XLSX工作簿。Workbooks.OpenFromStream(System.IO.Stream),並且還具有從字節數組OpenFromMemory直接打開的能力(字節[])。一旦打開,SpreadheetGear有一個全面的API,計算引擎,渲染引擎等等。

您可以看到現場示例here並下載免費試用here

聲明:我自己的SpreadsheetGear LLC

相關問題