IRONSOFTWAREHOME
USING IRONXL

如何在 C# 中建立 Excel 文件:Interop vs IronXL

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

介紹

程式生成Excel文件是許多C#應用程式中的基本需求。 雖然Microsoft.Office.Interop是傳統的C# Excel文件生成方法。 然而,它有一些限制,如需要安裝Microsoft Excel並依賴於主要互操作程式集。 現代的Excel程式庫替代品如IronXL允許您建立Excel工作簿、處理多個工作表、以及生成不需Microsoft Office的XLSX或CSV文件。本文比較了不同程式庫如何處理Excel文件建立,為.NET開發者提供範例程式碼和指導。

快速比較概覽

功能

Excel Interop

IronXL

EPPlus

ClosedXML

NPOI

GemBox

Aspose

需要安裝Excel

伺服器部署

不推薦

平台支持

僅限Windows

跨平台

跨平台

跨平台

跨平台

跨平台

跨平台

XLS支持

XLSX支持

學習曲線

陡峭

簡單

簡單

簡單

中等

簡單

中等

商業授權

Office授權

從$999

從€449

免費(MIT)

免費(Apache)

從€590

從$999

記憶體效率

卓越

卓越

注意:"Excel Interop"需要安裝Microsoft Excel,並附帶主要互操作程式集。 替代程式庫如IronXL允許您建立Excel文件、工作簿和工作表,而不需要Office,並支持xls、CSV文件和多個工作表。

為什麼要超越Excel Interop?

Microsoft.Office.Interop.Excel替代品是必要的,因為Excel Interop需要在每個運行應用程式的機器上安裝Microsoft Excel。 這種依賴性使得部署帶來挑戰,尤其是在Microsoft明確警告反對於伺服器自動化的情況下。 使用Interop而不安裝Excel會導致異常、警告訊息或無法成功建立Excel文件。 應用程式還會遭受COM依賴性問題、版本衝突和因為Excel在後台執行而造成的性能不佳。

現代的Excel程式庫,如IronXL,消除了這些問題。 您可以建立Excel文件、寫入資料至工作表、生成CSV或XML文件、處理新的Excel工作簿,而不依賴於Office、Excel應用程式物件或主要互操作程式集。 開發者也可以使用Visual Studio、Visual Basic或主控台應用程式專案來實現Windows或跨平台環境中的Excel自動化。

開始使用IronXL的免費試用以完全消除這些依賴性。

使用Interop建立Excel文件

首先讓我們看看使用Excel Interop的傳統方法:

using Excel = Microsoft.Office.Interop.Excel;
// Create Excel application instance
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets[1];
// Add data to cells
worksheet.Cells[1, 1] = "Product";
worksheet.Cells[1, 2] = "Price";
worksheet.Cells[2, 1] = "Widget";
worksheet.Cells[2, 2] = 9.99;
// Save and cleanup
workbook.SaveAs(@"C:\temp\products.xlsx");
workbook.Close();
excelApp.Quit();
// Release COM objects
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);

此程式碼需要安裝Excel,需要手動清理COM物件,並且無法在非Windows平台上運行。 在處理多個工作表、儲存為不同文件格式或在伺服器環境中工作時,這種複雜性會增加。 這就是為什麼許多開發者尋找不需要Microsoft Office的Excel程式庫的原因。

IronXL的比較如何?

IronXL消除了這些並發症,擁有不需Microsoft Office的現代直觀的Excel自動化API:

using IronXL;
// Create workbook without Excel
WorkBook workbook = WorkBook.Create();
WorkSheet worksheet = workbook.CreateWorkSheet("Products");
// Add data using familiar syntax
worksheet["A1"].Value = "Product";
worksheet["B1"].Value = "Price";
worksheet["A2"].Value = "Widget";
worksheet["B2"].Value = 9.99;
// Apply formatting
worksheet["A1:B1"].Style.Font.Bold = true;
worksheet["B2"].FormatString = "$#,###";
// Save with one line
workbook.SaveAs("products.xlsx");

在C#中建立Excel文件的方法:Interop與IronXL:圖1 - IronXL輸出

IronXL允許您程式生成Excel文件、新工作簿和多個工作表。 您可以寫入資料、顯示資料,並處理XLS、XLSX、CSV或XML文件,而不需安裝Microsoft Excel或引用主要互操作程式集。 這使得它成為.NET Framework、.NET Core、主控台應用程式和跨平台環境中完全管理的Excel程式庫。

由於IronXL可通過NuGet包獲得,您可以直接將其新增到您的Visual Studio專案中,而無需擔心安裝Microsoft Office。無需管理Excel應用程式物件或手動釋放COM物件,減少異常或警告訊息的風險。 了解有關用IronXL建立Excel文件或探索Excel公式和計算的更多資訊。

第一步:
arrow pointer

其他程式庫的比較如何?

EPPlus實施方案

EPPlus提供了一個簡潔的API,但自版本5起需要授權配置,詳細請參見Stack Overflow 執行緒

using OfficeOpenXml;
// Set license context (required from v5+)
ExcelPackage.License.SetNonCommercialPersonal("Test");
using (var package = new ExcelPackage())
{
    var worksheet = package.Workbook.Worksheets.Add("Products");
    worksheet.Cells[1, 1].Value = "Product";
    worksheet.Cells[1, 2].Value = "Price";
    worksheet.Cells[2, 1].Value = "Widget";
    worksheet.Cells[2, 2].Value = 9.99;
    package.SaveAs(new FileInfo("products.xlsx"));
}

在C#中建立Excel文件的方法:Interop與IronXL:圖2 - EPPlus輸出

EPPlus允許您建立Excel電子表格、寫入和顯示資料,並導出到XLSX文件或CSV文件。 然而,它不支持舊的XLS格式,並且商業用途需要商業授權。 在.NET Core或.NET Framework中工作的開發者可以通過NuGet包將EPPlus整合到Visual Studio專案和主控台應用程式中。

ClosedXML方案

ClosedXML提供了一個具有直觀API的開放源程式碼解決方案:

using ClosedXML.Excel;
using (var workbook = new XLWorkbook())
{
    var worksheet = workbook.Worksheets.Add("Products");
    worksheet.Cell("A1").Value = "Product";
    worksheet.Cell("B1").Value = "Price";
    worksheet.Cell("A2").Value = "Widget";
    worksheet.Cell("B2").Value = 9.99;
    workbook.SaveAs("products.xlsx");
}

在C#中建立Excel文件的方法:Interop與IronXL:圖3 - ClosedXML輸出

ClosedXML支持XLSX文件和Excel工作表,使其可以在未安裝Microsoft Office的情況下輕鬆建立Excel工作表。 它可以跨多個工作表工作,處理CSV和XML文件,並通過NuGet包整合到.NET項目中。

NPOI 針對遺留支持

NPOI處理XLS和XLSX格式,但API更為複雜:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
IWorkbook workbook = new XSSFWorkbook();
ISheet worksheet = workbook.CreateSheet("Products");
IRow headerRow = worksheet.CreateRow(0);
headerRow.CreateCell(0).SetCellValue("Product");
headerRow.CreateCell(1).SetCellValue("Price");
IRow dataRow = worksheet.CreateRow(1);
dataRow.CreateCell(0).SetCellValue("Widget");
dataRow.CreateCell(1).SetCellValue(9.99);
using (FileStream file = new FileStream("products.xlsx", FileMode.Create))
{
    workbook.Write(file);
}

在C#中建立Excel文件的方法:Interop與IronXL:圖4 - NPOI輸出

NPOI允許程式生成Excel工作表和工作簿,支持多種文件格式,包括CSV、XLSX和XLS文件。 然而,其Java傳承使得API不如其他C# Excel程式庫直觀。

關鍵決策因素

什麼時候選擇IronXL

IronXL在需要跨平台Excel程式庫支持、全面的Excel功能和專業支援的企業應用程式中表現出色。 當您需要在未安裝Office的情況下建立Excel文件時,其直觀的API可以減少開發時間,而其穩健的性能可以有效處理大量資料集。 其內建的公式引擎和對多種格式(XLS、XLSX、CSV、TSV)的支持使其能適應各種業務需求。

替代考量

EPPlus適用於已使用版本4.5.3或更早(最後免費版本)或已擁有EPPlus商業許可的項目。 ClosedXML適合沒有製圖需求且需要基本電子錶需要的開源項目。 當XLS支持至關重要且需要最小化許可成本時,NPOI仍然十分相關。

與其他商業選項的比較:GemBox.Spreadsheet提供與IronXL相似的功能,價格具競爭性,而Aspose.Cells提供了廣泛的功能但價格較高。 然而,IronXL的功能,性能和支持的組合經常為Excel操作.NET項目提供最好的價值。

從Interop到IronXL的遷移

從Excel Interop遷移到IronXL遵循一個簡單的模式。 欲獲取詳細指導,請參閱IronXL文件並探索程式碼範例

  1. 刪除COM引用 - 用IronXL替換Microsoft.Office.Interop.Excel引用
  2. 簡化物件建立 - 用直接的WorkBook建立替換Application/Workbook/Worksheet層次結構
  3. 更新單元格存取 - 從Cells[row, col]轉換為worksheet["A1"]標記
  4. 移除清理程式碼 - 消除Marshal.ReleaseComObject呼叫
  5. 測試跨平台 - 驗證目標部署平台上的功能

對於涉及Excel圖表條件格式的複雜遷移,IronXL提供了全面的支持。

瞭解限制

請注意,主要互操作程式集(PIA)不能在沒有安裝Excel的情況下運行—它們只不過是需要真實Office應用程式的COM物件的接口。 這種誤解通常導致在將應用程式部署到伺服器或嘗試在未安裝Office的情況下進行Excel自動化時遇到失敗。

關於安全性,IronXL進行定期的安全審計並保持DigiCert認證,提供企業級保護,沒有與COM介面相關的漏洞。 欲獲取詳細的安全資訊,請存取IronXL安全文件

結論

雖然Excel Interop曾在桌面應用程式中發揮過作用,但現代開發需要比Excel程式庫更靈活的替代品。 IronXL提供了攥妥不使用Interop建立Excel文件的最全面的替代方案,結合了易用性、企業功能和跨平台支持。

無論您是構建雲應用程式、在Docker容器中工作,還是開發跨平台解決方案,選擇一個不需要安裝Excel的程式庫,對於建立可擴展和可維護的應用程式至關重要。 下載IronXL以立即改變您的Excel自動化工作流。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立