繁体   English   中英

如何从 C# 加速创建 excel Excel 电子表格?

[英]How can I speed-up creating excel Excel spreadsheets from C#?

我目前正在编写大约 200 个 Excel 电子表格,使用 Excel 2007 和 C# ZD47C174ED277BDF70CC Interactive

不幸的是,我需要大约 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();
}

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

我将尝试您的一些建议,然后接受最佳解决方案。

您可以使用 EPPlus (here)完全摆脱 COM Interop。 This library creates Excel files by using the 2007 XML format, not the Excel COM interface, and is a lot quicker as a result.

您可以通过将具有 8 到 10 列的 1000 行视为一个数组并将您的数据复制到一个 go 中的该数组中,而不是单独填充这 8000 到 10000 个单元格中的每一个来加快这一速度。 有关更多信息,请参见此处:将数组写入 Excel 范围

您是否考虑过使用NPOI等 C# 工具。
它运行良好,不需要您使用 COM Interop。
斯科特米切尔最近写了一篇关于它的文章。

I wouldn't use an Excel app to do this, instead write it directly from c# using a library: Create Excel (.XLS and.XLSX) file from C#

快多了。

Rgds GJ

有时将文件保存为csv格式的文本文件就足够了。 它可以像普通的 Excel 表一样由 Excel 打开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM