跳過到頁腳內容
使用 IRONXL

如何在 C# 中使用 IronXL 開啟 Excel 文件應用

在 C# 中開啟和處理 Excel 檔案是幾乎所有 .NET 開發人員都會遇到的問題。 無論您是自動產生每週報告、讀取匯入數據,還是建立可即時產生電子表格的工具,您處理 Excel 檔案的方式都會對速度、可靠性和部署靈活性產生重大影響。

在本教程中,我們將學習如何使用IronXL (一個輕量級的 Excel 庫,無需安裝 Microsoft Office 即可讀取、編輯和寫入工作簿)在 C# 中開啟 Excel 檔案。 你會發現,在 C# 應用程式中以程式設計方式載入資料、存取工作表和處理儲存格是多麼簡單。

為什麼選擇 IronXL 而不是 Microsoft.Office.Interop.Excel?

雖然 Microsoft.Office.Interop.Excel 一直是 Excel 自動化的傳統方法,但它存在一些重大局限性,使得 IronXL 成為現代應用程式的更佳選擇。 微軟本身也不建議在伺服器上使用 Office Interop

特點

IronXL

Microsoft.Office.Interop.Excel

需要安裝 Excel

✅ 否

❌ 是的

跨平台支援

✅ Windows、Linux、macOS

❌ 僅限 Windows 系統

伺服器部署

✅ 完全支持

❌ 微軟不推薦

內存管理

✅ 自動

❌ 需要手動清理 COM 對象

API 的複雜性

✅ 簡單直觀

❌ 複雜的 COM 介面

文件格式支持

✅ XLS、XLSX、CSV、TSV、JSON

⚠️ 僅限 Excel 格式

IronXL 消除了對 Microsoft Excel 的依賴,使其成為伺服器環境、 Docker 容器Azure 等雲端平台的理想選擇。 該程式庫提供了一個簡潔、現代的 API,無需處理 COM 物件或手動記憶體管理。

如何安裝 IronXL for .NET?

IronXL 的入門非常簡單; 幾分鐘內即可將其添加到您的專案中。 只需透過 NuGet 套件管理器安裝即可:

Install-Package IronXL.Excel

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

如何在 C# 中開啟和讀取 Excel 檔案?

使用 IronXL 開啟現有的 Excel 檔案只需要幾行程式碼。 該庫支援讀取各種 Excel 格式,包括 XLS 和 XLSX,如下面的程式碼片段所示:

// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");
// Access the first worksheet
WorkSheet sheet = workbook.WorkSheets[0];
// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");
// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");
// Access the first worksheet
WorkSheet sheet = workbook.WorkSheets[0];
// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");
// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以上程式碼示範如何將 Excel 檔案載入到 WorkBook 物件中,該物件代表整個 Excel 檔案。 WorkBook.Load() 方法會自動偵測檔案格式(XLS、XLSX、CSV 或 TSV)並進行對應的處理。

您可以使用 GetWorkSheet() 方法按索引或名稱存取工作表。 透過直覺的括號表示法可以存取各個單元格的值,使程式碼具有很高的可讀性。 對於更複雜的場景,請探索使用 Excel 區域儲存格資料格式

輸出

如何使用 IronXL 在 C# 中開啟 Excel 檔案:圖 1 - 開啟並讀取範例 Excel 文件

如何建立新的Excel工作簿?

使用 IronXL 的電子表格建立功能,建立新的 Excel 檔案同樣簡單:

// Create a new workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add metadata
workbook.Metadata.Author = "Sales Department";
// Create a worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");
// Add data to cells
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Revenue";
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 45000;
// Apply formatting
sheet["B2"].FormatString = "$#,##0.00";
// Save the workbook
workbook.SaveAs("quarterly-report.xlsx");
// Create a new workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add metadata
workbook.Metadata.Author = "Sales Department";
// Create a worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");
// Add data to cells
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Revenue";
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 45000;
// Apply formatting
sheet["B2"].FormatString = "$#,##0.00";
// Save the workbook
workbook.SaveAs("quarterly-report.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在這個程式碼範例中,WorkBook.Create() 方法會使用您指定的格式初始化一個新的工作簿。 您可以使用 CreateWorkSheet() 新增多個工作表,使用各種資料類型填入 Excel 行和列中的特定儲存格,並套用格式樣式。 該程式庫會自動處理資料類型轉換和 Excel 特有的格式要求。 了解更多關於C#中Excel公式的高階計算方法。

輸出

如何在C#中使用IronXL開啟Excel檔案應用程式:圖2 - 建立新的Excel工作簿

如何讀取和處理Excel工作表資料?

IronXL在資料擷取和處理方面表現出色:

// Load workbook
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a range of cells
var range = sheet["A1:D5"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
// Convert to DataTable for easier processing
System.Data.DataTable dataTable = sheet.ToDataTable(true);
// Process data using LINQ
decimal total = sheet["C2:C5"].Sum();
Console.WriteLine($"Total: {total}");
// Load workbook
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a range of cells
var range = sheet["A1:D5"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
// Convert to DataTable for easier processing
System.Data.DataTable dataTable = sheet.ToDataTable(true);
// Process data using LINQ
decimal total = sheet["C2:C5"].Sum();
Console.WriteLine($"Total: {total}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在這裡,我們使用相同的流程在專案中開啟我們的 Excel 檔案。 範圍選擇語法(sheet["A1:D5"])提供了一種優雅的方式來處理多個單元格。 ToDataTable() 方法將工作表資料轉換為 DataTable,從而實現與資料庫的整合和資料綁定場景。 IronXL 也支援直接對範圍使用聚合函數,例如 Sum()、Average() 和 Max()。 若要處理更大的資料集,請參閱完整的 API 文件

如何在 C# 中使用 IronXL 開啟 Excel 檔案應用程式:圖 3 - 處理後的 Excel 資料輸出

無需 Microsoft Office 即可運作

IronXL最大的優點之一是它能夠獨立於Microsoft Office運作。這項特性使其擁有多種部署方案:

*雲端部署:可在 Azure、AWS 或 Google Cloud 上執行,無需擔心授權問題

  • Docker 容器:無需複雜的 Office 安裝即可整合到容器化應用程式中
  • Linux 伺服器:部署到經濟高效的 Linux 環境
  • CI/CD 管線:在自動化建置過程中產生 Excel 報告

該庫在內部處理所有 Excel 文件的生成和操作,並利用其自身的渲染引擎來確保在所有平台上獲得一致的結果。

結論

IronXL 提供了一種現代化且高效的解決方案,用於在 C# 中開啟和操作 Excel 檔案。 透過消除對 Excel 的依賴並提供簡潔的 API,它簡化了開發,同時實現了更廣泛的部署選項。 無論您是建立桌面應用程式、Web 服務還是基於雲端的解決方案,IronXL 都能確保您的 Excel 自動化在所有環境中可靠地運作。

準備好實現 Excel 自動化現代化了嗎? 下載 IronXL 免費試用版,價格從 $liteLicense 起。

常見問題解答

沒有 Microsoft Office,如何在 C# 中開啟 Excel 檔案?

您可以使用 IronXL 以 C# 開啟 Excel 檔案,而不需要 Microsoft Office。IronXL 提供了 Interop 的現代化替代方案,提供更好的效能,且不需依賴 Excel。

在 C# 中使用 IronXL.Excel 處理 Excel 檔案有什麼好處?

IronXL.Excel 提供多項優點,包括效能提升、不需依賴 Excel 安裝,以及部署更具彈性。它可讓開發人員自動化報表、讀取資料匯入,以及有效率地產生試算表。

IronXL 能處理 Excel 檔案的自動化任務嗎?

是的,IronXL 非常適合自動化任務,例如產生週報、讀取資料匯入,以及建立動態試算表生成工具。

IronXL 是否適合取代 C# 應用程式中的 Interop?

IronXL.Excel 是 Interop 的合適替代品,它提供了一個現代化的解決方案,在處理 Excel 檔案時不需要 Excel 的依賴性,並可改善應用程式的效能。

IronXL 是否支援讀寫 Excel 檔案?

IronXL 完全支援從 Excel 檔案讀取或寫入 Excel 檔案,使其成為 .NET 開發人員處理試算表資料的多用途工具。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。