【问题标题】:How to export Large dataset (around 40k rows and 26columns), to be written in excel sheet如何导出大型数据集(大约 40k 行和 26 列),以写入 Excel 表
【发布时间】:2013-02-06 10:46:28
【问题描述】:

我们有一个非常大的数据集(大约 40k 行)。我想写入excel文件。

我已经尝试过逐个单元格地写入excel文件,它可以工作。

我面临的问题是,写excel需要很多时间。

有没有有效的方法来做同样的事情。

【问题讨论】:

  • 您使用哪个库来导出?
  • 如果 winforms 可以在另一个线程上运行任务。
  • 有许多更有效的方法来做到这一点,但它们取决于知道您需要什么输出以及您已经拥有什么代码。例如,如果您只想要 excel 中的数据,那么 CSV 可能是合适的,或者如果您有公式,那么您可以直接编写 OOXML。您可以将其写入数据库并使用 excel 查询来代替。
  • 如果您不关心格式,我会选择编写 CSV 文件,或者使用 OleDb 编写电子表格。这两个选项都比 Interop 快得多,并且您不需要第三方库。如果您不确定如何使用 OleDb,我有一些示例代码,您可以根据自己的目的进行调整。

标签: c# excel dataset


【解决方案1】:

不要循环遍历每一行/列,而是将完整的数据集分配给内存中的一个数组 - 然后将该数组分配给一个相同维度的 Range 对象。在 VBA 中,这看起来像:

Dim arr as Variant
arr = ... ' Your code to fill the array here
Set Workbook("YourWorkbook").Worksheets("Worksheetname"). _ 
    Range(1,1).Resize(40000, 20).Value = arr

希望你能把它翻译成 c#...

【讨论】:

    【解决方案2】:

    如果您直接写入 excel,Albert 的想法会奏效 - 但它仍然会很慢。 我会使用像 EPPLUS 这样的库将大量数据写入 excel - 它更快、更可靠。

    【讨论】:

      猜你喜欢
      • 2011-11-05
      • 2023-03-23
      • 2016-04-04
      • 1970-01-01
      • 2011-03-10
      • 2011-06-26
      • 2017-09-19
      • 1970-01-01
      • 2017-05-07
      相关资源
      最近更新 更多