处理两个大型Excel文件

时间:2015-08-07 05:25:20

标签: c# excel winforms

任务:在C#中创建一个Windows窗体应用程序,它将从两个包含客户端数据的不同数据库中导出两个Excel文件(大约50 MB,每行大约300k行)。

在下面的屏幕截图中,我试图直观地解释所需内容:

enter image description here]

问题在于加载大文件! 首先,我认为我可以使用oledb执行此操作并将数据加载到数据表中并在内存中处理它们,但这需要很长时间并占用大量内存:

OleDbConnection con1 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath1 + ";Extended Properties=Excel 12.0");
OleDbDataAdapter da1 = new OleDbDataAdapter("select * from [Sheet1$]", con1);

DataTable dt1 = new DataTable();
da1.Fill(dt1);
MessageBox.Show("filled");

如果加载1个文件需要这么多,我无法想象处理和比较行所需的时间...... 任何人都可以提出更好的方法来完成这项任务吗?

1 个答案:

答案 0 :(得分:4)

有一种简单的方法 - 使用库EPPlus。解析和阅读速度非常快。

然后,您可以将数据转换为DataTable(.toDataTable())并使用内置工具进行比较。

甚至可以在DataTables中轻松生成输出文档,使用EPPLUS可以轻松将其转换为Excel。