2

我有大量的数据表,我想将它们导出到几个 Excel 工作表中(在一个新的电子表格/Excel 文件中)。我的代码中已经存在的“解决方案”是两个嵌套for循环,遍历所有行和列,逐个单元格地插入数据。这并不理想,因为该过程需要超过 10 分钟。由于生成的电子表格为 8.5MB,因此数据量相当大,但肯定有更快的方法吗?

我正在使用 Office 互操作库来执行此操作;我想我记得在某处读过你可以用这些导入 CSV。如果是这种情况,将 DataTables 转换为 CSV 然后将其导入 Excel 是否会更快,如果是,如何?

4

2 回答 2

2

您最好的选择可能是使用 Range 对象上的 Value 属性设置器来加快速度。它接受一个数组,这比单独设置每个单元格要快得多。您可以在http://support.microsoft.com/kb/302096上查看此示例。

于 2009-06-30T16:54:18.770 回答
0

SpreadsheetGear for .NET has an API similar to Excel's but will drop your time from 10+ minutes to a few seconds (actually, generating an 8.5MB workbook would typically take <1 second on a modern server). SpreadsheetGear also includes an IRange.CopyFromDataTable method which might work for you.

You can see live ASP.NET samples (C# & VB) here and download the evaluation here.

Disclaimer: I own SpreadsheetGear LLC

于 2009-06-30T18:10:24.890 回答