【问题标题】:Process two large Excel files处理两个大型 Excel 文件
【发布时间】: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 个文件就需要这么多,我无法想象处理和比较行需要多长时间...... 有人可以提出更好的方法来完成这项任务吗?

【问题讨论】:

    标签: c# excel winforms


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多