System.OutofMemoryexception擅长1 GB数据

我在服务器中有2个Excel文件,每个文件大小为1GB。 我必须比较这些文件,并将结果发送到一个单独的表格中。

我能够读取一个Excel文件到一个数据表,当我正在读取另一个Excel的数据时,我正在越来越内存exception。

file = new FileInfo(@"Remote Location" + strFileName); bool hasHeader = true; file.CopyTo(strPath, true); file = null; using (var pck = new OfficeOpenXml.ExcelPackage()) { using (FileStream stream = File.OpenRead(strPath)) { pck.Load(stream); //Getting issue out of memory for second excel file stream.Close(); stream.Dispose(); } } 

您处于32位进程可以处理的极限。 确保您使用的是64位Windows,并确保您以64位模式运行您的应用程序,右键单击“项目” – >“属性” – >“生成”,然后从“任意CPU”的典型默认值强制为x64。

尽pipe可能有更好的解决scheme,但为什么不使用Excel ODBC驱动程序将每个Excel工作表视为数据源呢? 我的想法是更有效率。