用ADO.NET读取内存中的Excel文件(字节数组)?

我想使用ADO.net从Excel文件中提取一些数据。 这个过程在互联网上logging的很好。 我的看法是,我的文件已被用户上传,因此只存在于内存中的字节数组。 出于安全性和性能的原因,我宁愿不把这个文件写入磁盘。

有没有一种方法来构build连接字节数组的连接string? 或者可能暴露数组作为实际存储在内存中的文件(就像我猜的RAM磁盘)?

如果只存在于内存中,则无法连接。 OLE也被排除了(尽pipe使用Office Automation作为服务器应用程序是不好的devise)。

我能想到的唯一方法是自己读取二进制Excel数据 – 例如使用SpreadSheetGear.Net类似于:

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

就像Rich B在他的回答中所说的那样,我不认为有可能以标准的ado.net方式连接到一个只在内存中悬挂的excel文件。 最简单的解决方法可能是将excel文件实际保存到磁盘,使用连接string使用Jet引擎连接到该文件,然后在完成所有任务后,摆脱该文件。 这可能不是理想的performance,但是缺乏某些WTFiness,会让你把头发拉出来。

我不认为有可能通过连接string来做到这一点。

如果您需要磁盘上Excel文件的帮助,请访问: http : //connectionstrings.com/excel-2007

一般来说: http : //connectionstrings.com/