【发布时间】:2015-10-30 10:59:30
【问题描述】:
任务:在 C# 中创建一个 Windows 窗体应用程序,该应用程序将使用两个 Excel 文件(每个大约 50 mb,大约 300k 行),这些文件是从两个不同的数据库中导出的,其中包含有关客户端的数据。
在下面的屏幕截图中,我试图直观地解释需要什么:
问题在于加载大文件! 一开始我以为我可以用 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 个文件就需要这么多,我无法想象处理和比较行需要多长时间...... 有人可以提出更好的方法来完成这项任务吗?
【问题讨论】: