用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/