簡體   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