跳過到頁腳內容
使用 IRONXL

如何在 C# 中導入 Excel 文件

Microsoft Excel 是一款多功能的電子表格軟體,有助於數據的組織、展現和分析。 然而,在 C# 中以程式方式操作 Excel 可能具有挑戰性。 IronXL 軟體庫可以用來在 C# 中導入和讀取 Excel 文件。

IronXL - Excel 庫

IronXL 是一個 .NET 的 Excel 庫,專注於為用戶提供易用性、準確性和速度。 它幫助您高效地導入和讀取 Excel 文檔,並以閃電般的速度創建和編輯 Excel 文件。 它不需要 MS Office Interop。這意味著即使沒有安裝 Excel,它也提供了讀取 Excel 文件的所有功能。 這使得 IronXL 成為開發人員在 C# 中導入和讀取 Excel 文件的一個強大工具。

IronXL 可在所有平台上使用,如 Windows、Linux、MacOS、Docker、Azure 和 AWS。 它與所有的 .NET Framework 兼容。 IronXL 是一個多功能的庫,可集成到控制台、桌面和 Web ASP.NET 應用程序中。 它支持不同的工作簿格式,如 XLS 和 XLSX 文件、XSLT 和 XLSM、CSV 和 TSV。

一些重要特點

  • 開啟、讀取 Excel 文件,並從不同的電子表格格式中搜尋數據,如 XLS/CSV/TSV/XLSX 文件。
  • 將 Excel 工作表導出為 XLS/XLSX/CSV/TSV/JSON。
  • 使用密碼加密和解密 XLSM/XLTX/XLSX 文件。
  • 將 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 讀取 Excel 文件,請確保在計算機上安裝以下組件:

  1. Visual Studio - 它是開發 C# .NET 應用程序的官方 IDE。 您可以從Microsoft 網站下載和安裝 Visual Studio。
  2. IronXL - 它是幫助在 C# 中處理特定路徑下 Excel 表的庫。 在使用之前必須將其安裝在 C# 程序中。 IronXL 可以從 NuGet 網站或 Visual Studio 工具中的管理 NuGet 包下載。 您也可以直接下載 .NET Excel DLL 文件。

添加必要的命名空間

Visual Studio 和 IronXL 安裝後,請引用 IronXL 程序集以便在源代碼中使用 IronXL。 在新項目中添加以下代碼行於文件頂部,用於使用 IronXL 的功能:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

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

Microsoft Excel 試算表也稱為 Excel 工作簿。 每本工作簿包含多個工作表,每張工作表含有帶有其值的表格式單元格。 To open and read an Excel file, it should be loaded using the WorkBook class and Load method present in the IronXL library. 代碼如下:

// 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

這會在工作簿實例引用變量中打開 Excel 文件。 由於它可以含有多個工作表,因此可以用於打開特定工作表或一次性全部打開。 以下代碼在工作表實例變量中打開第一個工作表:

WorkSheet sheet = workbook.WorkSheets.First();
WorkSheet sheet = workbook.WorkSheets.First();
Dim sheet As WorkSheet = workbook.WorkSheets.First()
$vbLabelText   $csharpLabel

這將打開 Excel 文件中的第一個工作表,現在可以在此工作表上讀取和寫入 Excel 數據。

已打開的 Excel 文件

如何在 C# 中導入 Excel 文件,圖 1:Excel 文件 Excel 文件

從導入的 Excel 文件中讀取數據

Excel 文件一旦導入,就可以準備開始讀取數據。 使用 IronXL 在 C# 中讀取 Excel 文件數據非常簡單和容易。 您可以通過簡單提及單元格引用號來讀取 Excel 單元格值。

以下代碼檢索引用號為 "C2" 的單元格值:

// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);
// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);
' Select cells easily in Excel-notation and return the value
Dim cellValue As Integer = sheet("C2").IntValue

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

輸出如下:

如何在 C# 中導入 Excel 文件,圖 2:讀取 Excel 讀取 Excel

Now, let's read data from a range of cells in the opened Excel file. 代碼如下:

// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from a range of cells elegantly.
For Each cell In sheet("A2:A6")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

代碼非常簡單、整潔且清晰。 單元格範圍可以使用簡單語法參照,如 foreach 迴圈中所示:sheet["A2:A6"] 並且可以遍歷每個單元格以獲取其值。 在這裡,您將在控制台輸出中看到從第 2 行到第 6 行的 A 列中的名字:

如何在 C# 中導入 Excel 文件,圖 3:讀取單元格範圍 讀取單元格範圍

要獲取更多關於讀取和寫入單元格值的詳細信息,請查看此教程C# 示例讀取 Excel 文件

導入 Excel 文件中的所有數據

IronXL 可以用於一次性使用行和列索引讀取 Excel 表。 以下 IronXL 代碼示例幫助獲取整個 Excel 文件數據,以相同的格式呈現在控制台輸出中:

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}
Imports Microsoft.VisualBasic

Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()

' Traverse all rows of Excel WorkSheet
For i As Integer = 0 To sheet.Rows.Count() - 1
	' Traverse all columns of specific Row
	For j As Integer = 0 To sheet.Columns.Count() - 1
		' Get the values
		Dim val As String = sheet.Rows(i).Columns(j).Value.ToString()
		Console.Write("{0}" & vbTab, val)
	Next j
	Console.WriteLine()
Next i
$vbLabelText   $csharpLabel

輸出文件

如何在 C# 中導入 Excel 文件,圖 4:用於讀取 Excel 文件的輸出控制台 用於讀取 Excel 文件的輸出控制台

添加圖像替代文字。

總結

本文演示了如何在沒有安裝 Microsoft Excel 的情況下,在 C# 中導入和讀取 Excel 文件。 然後考慮了從 Excel 試算表中讀取數據的多種方法。 IronXL 還幫助在 C# 中創建 Excel 文件,而無需安裝任何 Excel。

IronXL 為所有 Microsoft Excel 文檔相關的任務提供了一個可以程式化實現的一站式解決方案。 您可以進行公式計算、字串或數字排序、修剪和附加、查找和替換、合併和取消合併、保存文件等。 您可以編輯單元格值,還可以設置單元格數據格式,並驗證試算表數據。 它還支持 CSV 文件,並幫助您像操作 Excel 數據一樣進行操作。

IronXL is available for a free trial and can be 授權,其 Lite 套餐起價僅為 $799。

常見問題解答

如何在不使用 Interop 的情況下在 C# 中匯入和讀取 Excel 文件?

您可以使用 IronXL 庫在 C# 中匯入和讀取 Excel 文件。只需使用 WorkBook.Load("file.xlsx") 讀取 Excel 文件,即可在無需安裝 Microsoft Excel 的情況下訪問和處理數據。

IronXL 庫與哪些平台兼容?

IronXL 與所有 .NET 框架兼容,可在多個平台上使用,包括 Windows、Linux、MacOS、Docker、Azure 和 AWS。

我可以使用 IronXL 編輯 Excel 文件而不安裝 Microsoft Excel 嗎?

可以,IronXL 允許您在 C# 中以程式化方式創建和編輯 Excel 文件,而無需在系統上安裝 Microsoft Excel。

IronXL 可以處理哪些 Excel 格式?

IronXL 支援各種 Excel 文件格式,如 XLS、XLSX、CSV、TSV 等,方便數據的匯入和操作。

在 C# 項目中使用 IronXL 有什麼先決條件?

要使用 IronXL,請確保已安裝 Visual Studio。您可以通過 NuGet 套件管理器將 IronXL 添加到您的項目中,或下載並引用 .NET Excel DLL。

如何在 C# 中使用 IronXL 加載 Excel 活頁簿?

要在 C# 中加載 Excel 活頁簿,使用 IronXL 的 WorkBook.Load("path/to/file.xlsx") 方法,可打開並操作活頁簿。

IronXL 能處理 Excel 公式嗎?

可以,IronXL 能夠在編輯工作表時無縫處理和重新計算 Excel 公式,以確保數據計算的準確性。

如何使用 IronXL 從特定單元格讀取數據?

要從特定單元格讀取數據,使用 IronXL 語法如 sheet["B2"].StringValue 從 B2 單元格獲取值。

我可以使用 IronXL 循環遍歷 Excel 表格中的一個範圍的單元格嗎?

可以,您可以使用 IronXL 循環遍歷一個範圍的單元格,語法如 foreach (var cell in sheet["A1:C3"]) 逐一處理每個單元格。

如何將 IronXL 整合到 ASP.NET 應用程序中?

IronXL 可以通過 NuGet 添加到 ASP.NET 應用程序中,並在項目中引用,從而實現 Web 應用程序中的 Excel 文件操作。

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