跳過到頁腳內容
使用 IRONXL

如何在 C# 中開啟 Excel 文件

本教程將使用IronXL作為主要工具來在C#項目中打開和讀取Excel文件。

IronXL Excel庫

IronXL是一個.NET庫,為用戶優先考慮易用性、準確性和速度。 它幫助您以閃電般的速度打開、讀取、創建和編輯Excel文件,且沒有任何錯誤。 它不依賴於MS Office Interop,這使得它成為一個開發者強大的工具。

IronXL與所有.NET框架兼容,並支持Linux、MacOS、Docker、Azure和AWS。 它可以用來創建控制台、Web和桌面應用程序,如Blazor和MAUI,用於現代的Web應用。它支持不同的工作簿格式,如XLS和XLSX文件、XSLT和XLSM、CSV和TSV。

一些重要的IronXL功能

  • 打開、讀取和搜索不同格式的數據(XLS/XLSX文件/CSV/TSV)。
  • 將Excel工作表導出為XLS/XLSX/CSV/TSV/JSON。
  • 用密碼加密和解密XLSX/XLSM/XLTX文件。
  • 與Excel工作表以System.Data.DataSetSystem.Data.DataTable對象進行操作。
  • 每次編輯工作表時,Excel文件中的公式會自動重新計算。
  • 使用直觀的基於單元格範圍的語法進行簡單的電子表格數據編輯(例如,WorkSheet["A1:B10"])。
  • 排序單元格範圍、列和行。
  • Styling Cells - Font, Font Size, Background color, Border, Alignment, and Numbering formats.

如何在C#中打開Excel文件?

先決條件

要在C#應用中使用IronXL,請在本地計算機上安裝以下組件:

  1. Visual Studio - 它是開發 C# .NET 應用程序的官方 IDE。 您可以從Microsoft 網站下載和安裝 Visual Studio。 您還可以使用Jetbrains ReSharper & Rider。
  2. IronXL - 這是Excel庫,幫助在C#中對給定路徑的Excel工作表進行操作。 在使用它之前,必須將其安裝在你的 C# 應用中。 您可以從NuGet網站或在Visual Studio工具中的管理NuGet包中下載它。 您還可以直接下載.NET Excel DLL文件。

添加必要的命名空間

安裝Visual Studio和IronXL後,通過在C#文件頂部包含以下行添加必要的IronXL命名空間:

// Add reference to the IronXL library
using IronXL;
// Add reference to the IronXL library
using IronXL;
' Add reference to the IronXL library
Imports IronXL
$vbLabelText   $csharpLabel

在 C# 中打開現有的 Excel 文件

Excel文件也稱為工作簿,由多個工作表組成,每個工作表包含單元格值。 To open and read an Excel file, load it using the WorkBook class's Load method.

// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
' Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
$vbLabelText   $csharpLabel

這將把工作簿初始化為WorkBook實例。 要打開特定WorkSheet,從WorkSheets集合中檢索它:

// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();
// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();
' Access the first worksheet in the workbook
Dim sheet As WorkSheet = workbook.WorkSheets.First()
$vbLabelText   $csharpLabel

這可以訪問Excel文件中的第一張工作表,準備好進行讀寫。

如何在C#中打開Excel文件,圖1:Excel文件 Excel文件

在C#中讀取Excel文件

Excel文件打開後,即可準備好讀取數據。 使用IronXL在C#中從Excel文件中讀取數據很簡單。 您可以通過指定單元格引用來讀取單元格的值。

以下代碼檢索單元格的值:

// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// Display the value in the console
Console.WriteLine(cellValue);
// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// Display the value in the console
Console.WriteLine(cellValue);
' Select the cell using Excel notation and retrieve its integer value
Dim cellValue As Integer = sheet("C2").IntValue

' Display the value in the console
Console.WriteLine(cellValue)
$vbLabelText   $csharpLabel

輸出如下:

如何在C#中打開Excel文件,圖2:讀取Excel 讀取 Excel

要從一個單元格範圍中讀取數據,使用循環遍歷指定範圍:

// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Iterate through a range of cells and display their address and text content
For Each cell In sheet("A2:A6")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

範圍A2:A6中的每個值都被訪問並打印到控制台。

如何在C#中打開Excel文件,圖3:讀取多個單元格範圍 讀取單元格範圍

對於更詳細的讀寫範例,請查看C#中的Excel讀取教程

創建新的工作簿

IronXL還可以創建新工作簿以進行數據保存和檢索。

您可以用一行代碼創建一個新的Excel文件:

// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
' Create a new workbook with the XLSX format
Dim workBook As New WorkBook(ExcelFileFormat.XLSX)
$vbLabelText   $csharpLabel

接著創建一個工作表並向其中添加數據。

創建新的工作表

// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");
// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");
' Create a worksheet named "GDPByCountry" in the workbook
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("GDPByCountry")
$vbLabelText   $csharpLabel

此代碼向工作簿中添加了一個名為"GDPByCountry"的工作表,允許您添加單元格值。

要為特定單元格設置值,請使用以下代碼:

// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";
// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";
' Set the value of cell A1 to "Example"
workSheet("A1").Value = "Example"
$vbLabelText   $csharpLabel

最終輸出為:

如何在C#中打開Excel文件,圖4:向單元格添加值 向單元格添加值

總結

本文演示了如何使用IronXL在C#中打開和讀取像XLS和XLSX這樣的Excel文件。 IronXL不需要在系統上安裝Microsoft Excel以進行與Excel相關的任務。

IronXL provides a comprehensive solution for Excel-related tasks programmatically, including formula calculation, string sorting, trimming, finding and replacing, merging and unmerging, saving files, and more. 您還可以設置單元格數據格式。

IronXL is available for a free 30-day trial and can be licensed for commercial use. IronXL的Lite包從$799開始。

常見問題解答

如何在 C# 中不使用 Interop 的情況下開啟 Excel 文件?

您可以使用 IronXL 庫在 C# 中開啟 Excel 文件,而不需要使用 Interop。使用 WorkBook.Load 方法將 Excel 文件載入 WorkBook 實例中,這樣就可以訪問和操作文件中的數據。

該 C# Excel 庫兼容哪些文件格式?

IronXL 支持多種 Excel 文件格式,包括 XLS、XLSX、CSV 和 TSV。這允許開發人員在其 C# 應用程序中靈活地開啟、讀取和寫入這些格式。

我可以在 C# 中使用此庫編輯 Excel 文件嗎?

是的,您可以使用 IronXL 編輯 Excel 文件。載入工作簿後,您可以修改數據、添加新工作表,然後將更改保存回文件或以各種格式導出。

如何在我的 C# 項目中安裝此庫?

要在您的 C# 項目中安裝 IronXL,可以使用 Visual Studio 中的 NuGet 套件管理器來添加此庫。或者,您可以下載 .NET Excel DLL 並在項目中引用它。

是否可以使用此庫加密 Excel 文件?

是的,IronXL 允許您加密和解密 Excel 文件。您可以在文件操作過程中使用密碼保護 Excel 文檔以保護敏感數據。

此庫支持 Excel 表中的公式重新計算嗎?

IronXL 支持自動公式重新計算,確保對數據的任何更改都會自動更新公式,就像在 Excel 中一樣。

如何使用此庫讀取 Excel 工作表中的特定單元格值?

要使用 IronXL 讀取特定單元格的值,您可以使用 Excel 標記法引用單元格。例如,sheet["A1"].StringValue 將檢索單元格 A1 的字符串值。

此庫可以在不同的操作系統上使用嗎?

是的,IronXL 與多個操作系統兼容,包括 Windows、Linux 和 macOS。它還支持在 Docker、Azure 和 AWS 環境中的部署。

使用此庫相較於 MS Office Interop 有什麼優勢?

IronXL 相較於 MS Office Interop 有多個優勢,如不需要在系統上安裝 Excel、在伺服器環境中具有更好的性能,以及在現代 .NET 應用中易於使用。

此 C# Excel 庫是否提供免費試用?

是的,IronXL 提供 30 天免費試用,允許您在決定為項目購買商業授權之前測試其功能和特性。

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