将DataTables导出到多个Excel工作表中

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

我正在使用Office Interop库来执行此操作; 我想我记得有些地方可以用CSV导入。 如果是这样的话,把DataTables变成CSV然后再导入到Excel中会更快吗?如果是这样,怎么办?

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

用于.NET的SpreadsheetGear有一个类似于Excel的API,但是会将时间从10分钟以上减less到几秒钟(实际上,生成一个8.5MB的工作簿通常在现代服务器上需要<1秒)。 SpreadsheetGear还包含一个IRange.CopyFromDataTable方法,可能适用于您。

你可以在这里看到实时的ASP.NET样本(C#和VB) ,并在这里下载评估。

免责声明:我自己的SpreadsheetGear LLC