我怎样才能加快从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。
斯科特·米切尔最近写了这个。