簡體   English   中英

使用ADO.NET讀取內存中的Excel文件(字節數組)?

[英]Read an in-memory Excel file (byte array) with ADO.NET?

我想使用ADO.net從Excel文件中提取一些數據。 這個過程在互聯網上有很好的記錄。 我的問題是我的文件已被用戶上傳,因此僅作為內存中的字節數組存在。 出於安全性和性能原因,我寧願不將此文件寫入磁盤。

有沒有辦法構建連接到字節數組的連接字符串? 或者可能將該數組暴露為實際存儲在內存中的文件(如我猜的RAM磁盤)?

如果僅存在於內存中,則無法連接。 OLE也被排除(盡管使用Office Automation作為服務器應用程序的設計很糟糕)。

我能想到的唯一方法是自己讀取二進制Excel數據 - 例如使用SpreadSheetGear.Net,例如:

SpreadsheetGear.Factory.GetWorkbookSet().Workbooks.OpenFromStream(*stream*);

就像Rich B在他的回答中所說,我認為不可能以標准的ado.net方式連接到只是在內存中閑置的excel文件。 最簡單的解決方法可能是將excel文件實際保存到磁盤,使用帶有連接字符串的Jet引擎連接到它,然后在完成所有任務后,刪除文件。 這在性能方面可能不是理想的,但缺乏某種可能會讓你脫發的WTFiness。

我不認為只通過連接字符串就可以做到這一點。

如果您需要有關磁盤上Excel文件的幫助,請訪問: http//connectionstrings.com/excel-2007

一般來說: http//connectionstrings.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM