我怎样才能加快从C#中创buildExcel电子表格?

我目前正在使用C#COM Interop使用Excel 2007编写大约200个Excel电子表格。

不幸的是我需要大约4分钟的时间来写这200张纸 – 每张纸都有大约1000行,每行8-10列。

我如何加快速度?

我的代码基本上是这样的:

var xlApp = new Excel.Application(); xlApp.DisplayAlerts=false; foreach (x in z) { var wb = xlApp.Workbooks.add(XLWBATemplae.xlWBATWorksheet); var ws = (Worksheet)wb.Worksheets[1]; //fill data into sheet wb.SaveAs(fileName); wbClose(); } 

澄清:我现在正在填充每个单元格

我会尝试一些你的build议,然后接受最好的解决scheme。

您可以使用EPPlus (这里)完全摆脱COM Interop。 该库通过使用2007 XML格式创buildExcel文件,而不是Excel COM界面,结果更快。

你可以通过将8行到10列的1000行作为一个数组来处理,并将数据一次性复制到这个数组中,而不是单独填充这8000到10000个单元中的每一个。 请参阅这里获取更多信息: 将数组写入Excel范围

我不会使用Excel应用程序来做到这一点,而是直接从C#使用库写入: 从C#创buildExcel(.XLS和.XLSX)文件

快多了。

Rgds GJ

有时将文件以csv格式保存为文本文件就足够了。 它可以像Excel常规工作表一样通过Excel打开。

你有没有考虑过使用C#工具,如NPOI 。
它工作得很好,它不需要你使用COM Interop。
斯科特·米切尔最近写了这个。