C# Read XLSX File

This article was translated from English: Does it need improvement?
Translated
View the article in English

當處理不同的 Excel 格式時,通常需要以編程方式讀取和操作數據。 在接下來的教程中,我們將學習如何使用便捷的工具 IronXL 從 Excel 試算表中讀取數據。

小抄:輕鬆加載工作簿和訪問工作表

使用 IronXL,您可以使用 WorkBook.Load 方法在一行中加載 XLSX 文件。然後立即訪問其第一個或指定名稱的工作表,並開始讀取單元格值 —— 快速、無阻地讀取 Excel 文件。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. Copy and run this code snippet.

    IronXL.WorkBook workbook = IronXL.WorkBook.Load("your-file.xlsx");
  3. Deploy to test on your live environment

    Start using IronXL in your project today with a free trial
    arrow pointer
class="learnn-how-section">
class="row">
class="col-sm-6">

讀取 .XLSX 文件 C#

  • 為您的項目獲取 IronXL
  • 加載工作簿
  • 從工作表訪問數據
  • 應用函數如 Sum, Min, & Max
  • 將工作表作為 DataTable、DataSet 等讀取
class="col-sm-6">
class="download-card"> How To Work related to C# Read XLSX File

1. 為您的項目獲取 IronXL

在您的項目中使用 IronXL 是用 C# 處理 Excel 文件格式的簡單方式。 You can either install IronXL via direct download or alternatively you can use NuGet Install for Visual Studio. 該軟體是免費供開發使用。

Install-Package IronXL.Excel

class="tutorial-segment-title">如何教程

2. 加載工作簿

WorkBook 是 IronXL 的類,其對象提供對 Excel 文件及其完整功能的完全訪問。 例如,如果我們想存取 Excel 文件,我們會使用以下代碼:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-load-workbook.cs
using IronXL;

// Load the workbook
WorkBook workBook = WorkBook.Load("sample.xlsx"); // Excel file path
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

在上面的代碼中,WorkBook.Load() 函數將 sample.xlsx 加載到 workBook。 可以通過訪問 Excel 文件的特定工作表對 workBook 執行任何類型的功能。


3. 訪問特定工作表

要訪問 Excel 文件的特定工作表,IronXL 提供了 WorkSheet 類。 可以用幾種不同的方式使用它:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-worksheet.cs
using IronXL;

// Access sheet by name
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

workBook 是上面部分中聲明的 WorkBook。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-worksheet-index.cs
using IronXL;

// Access sheet by index
WorkSheet workSheet = workBook.WorkSheets[0];
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-default-worksheet.cs
using IronXL;

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-worksheet.cs
using IronXL;
using System.Linq;

// Access the first worksheet
WorkSheet workSheet = workBook.WorkSheets.First();
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-or-default-worksheet.cs
using IronXL;
using System.Linq;

// Access the first or default worksheet
WorkSheet workSheet = workBook.WorkSheets.FirstOrDefault();
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

在獲取 ExcelSheet workSheet 之後,您可以從中獲取任何類型的數據並對其執行所有 Excel 功能。


4. 從工作表訪問數據

可以通過此過程從 ExcelSheet workSheet 獲取數據:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-data.cs
using IronXL;

// Accessing data as a string
string dataString = workSheet["A1"].ToString();

// Accessing data as an integer
int dataInt = workSheet["B1"].Int32Value;
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

也可以從特定列的多個單元格中獲取數據。

foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
For Each cell In workSheet("A2:A10")
	Console.WriteLine("Value is: {0}", cell.Text)
Next cell
$vbLabelText   $csharpLabel

這將顯示從單元格 A2A10 的值。

這裡提供了上述具體細節的完整代碼示例。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-log-data.cs
using IronXL;
using System;

// Load an Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify the range
foreach (var cell in workSheet["B2:B10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

它將顯示以下結果:

class="center-image-wrapper"> Doc3 Input1 related to 4. 從工作表訪問數據

使用 Excel 文件 Sample.xlsx

class="center-image-wrapper"> Doc3 1 related to 4. 從工作表訪問數據

我們可以看到,使用這些方法在項目中使用 Excel 文件數據是多麼輕鬆自如。


5. 對數據執行函數

可以非常直觀地通過以下代碼對 Excel 工作表中的過濾數據應用彙總函數如 Sum, Min 或 Max。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-aggregate-function.cs
using IronXL;

// Apply aggregate functions
decimal sum = workSheet["G2:G10"].Sum(); // Sum of cells from G2 to G10
decimal min = workSheet["G2:G10"].Min(); // Minimum value in cells from G2 to G10
decimal max = workSheet["G2:G10"].Max(); // Maximum value in cells from G2 to G10
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

如果想要更多詳情,請查看我們關於如何使用查找詳細的教程 寫入 C# Excel 文件,其中有關於彙總函數的具體內容。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-min-max.cs
using IronXL;
using System;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Calculate sum, minimum, and maximum for a range of cells
decimal sum = workSheet["G2:G10"].Sum();
decimal min = workSheet["G2:G10"].Min();
decimal max = workSheet["G2:G10"].Max();

// Output results
Console.WriteLine("Sum is: {0}", sum);
Console.WriteLine("Min is: {0}", min);
Console.WriteLine("Max is: {0}", max);
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

此代碼將顯示以下輸出:

class="center-image-wrapper"> Doc3 Output2 related to 5. 對數據執行函數

而這就是 Excel 文件 Sample.xlsx 的外觀:

class="center-image-wrapper"> Doc3 2 related to 5. 對數據執行函數

6. 將 Excel 工作表讀取為 DataTable

使用 IronXL,操作 Excel 工作表作為 DataTable 十分簡單。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable.cs
using IronXL;
using System.Data;

// Convert worksheet to DataTable
DataTable dt = workSheet.ToDataTable();
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

如果我們想使用 ExcelSheet 的第一行作為 DataTable 的 ColumnName,那麼:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable-header.cs
using IronXL;
using System.Data;

// Convert worksheet to DataTable with the first row as column names
DataTable dt = workSheet.ToDataTable(true);
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

因此,ToDataTable() 的布爾參數將第一行設置為 DataTable 的列名稱。 默認情況下,該值為 False

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-print-datatable.cs
using IronXL;
using System;
using System.Data;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Convert WorkSheet to DataTable
DataTable dt = workSheet.ToDataTable(true); // Use first row as column names

// Iterate through rows and columns and display data
foreach (DataRow row in dt.Rows) // Access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) // Access columns of corresponding row
    {
        Console.Write(row[i] + " ");
    }
    Console.WriteLine();
}
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

使用上述代碼,可以根據需要訪問並使用工作表的每個單元格值。


7. 將 Excel 文件讀取為 DataSet

IronXL 提供了一個非常簡單的功能,可以將整個 Excel 文件(WorkBook)作為 DataSet 使用。 使用 ToDataSet 方法將整個工作簿轉換為 DataSet。 在這個例子中,我們將看到如何將 Excel 文件用作 DataSet。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-excel-to-dataset.cs
using IronXL;
using System;
using System.Data;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Convert the WorkBook to a DataSet
DataSet ds = workBook.ToDataSet();

// Iterate through tables in the DataSet and display table names
foreach (DataTable dt in ds.Tables)
{
    Console.WriteLine(dt.TableName);
}
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

上面代碼的輸出將如下所示:

class="center-image-wrapper"> Doc10 Output2 related to 7. 將 Excel 文件讀取為 DataSet

Excel 文件 Sample.xlsx 的外觀將如下所示:

class="center-image-wrapper"> Doc10 2 related to 7. 將 Excel 文件讀取為 DataSet

在上面的例子中,我們看到可以輕鬆地將 Excel 文件解析為 DataSet 並將其與 Excel 文件的每個工作表作為 DataTable 使用。 深入了解如何將 Excel 解析為 DataSet,其中包括代碼示例。

讓我們再來看一個例子,看看如何訪問所有 ExcelSheets 的每個單元格值。 在這裡,我們可以訪問 Excel 文件的每個工作表的每個單元格值。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
// 此代碼段不可用!
IRON VB CONVERTER ERROR [email protected]
$vbLabelText   $csharpLabel

使用上述例子,非常方便地訪問每個工作表的每個單元格值。

有關如何在不使用 Interop 的情況下讀取 Excel 文件的更多內容,請查看此處代碼。


class="tutorial-segment-title">教程快速訪問

class="tutorial-section">
class="row">
class="col-sm-8">

IronXL 的 API 參考

在文件檔案中閱讀更多關於 IronXL 的功能、類、方法字段、命名空間和枚舉。

IronXL API 參考
class="col-sm-4">
class="tutorial-image"> Documentation related to class=教程快速訪問" class="img-responsive add-shadow img-responsive img-popup" src="/img/svgs/documentation.svg" loading="lazy">

常見問題解答

如何在C#中讀取不使用Interop的XLSX文件?

要在C#中不使用Interop讀取XLSX文件,您可以使用IronXL庫。安裝IronXL後,您可以使用WorkBook.Load()方法加載Excel工作簿並訪問其內容。

如何在C#中加載Excel工作簿?

您可以使用IronXL通過調用WorkBook.Load('yourfile.xlsx')在C#中加載Excel工作簿,這樣會打開指定的文件以供操作。

訪問Excel文件中的工作表有哪些方法?

在IronXL中,您可以使用名稱或索引的GetWorkSheet方法以及DefaultWorkSheetFirst等屬性訪問工作表。

如何使用C#操作Excel工作表中的數據?

您可以使用IronXL在Excel工作表中通過訪問像ws['A1'].ToString()這樣的語法來獲取單元格值操作數據,用於字符串或ws['B1'].Int32Value用於整數,並應用如Sum在單元格範圍的功能。

我可以在C#中對Excel數據執行聚合操作嗎?

是的,IronXL允許在C#中對Excel數據執行聚合操作,使用Sum()Min()Max()這樣的方法在指定的單元格範圍上。

可否將Excel工作表轉換為DataTable?

是的,您可以在C#中使用IronXL的ToDataTable()方法將Excel工作表轉換為DataTable,並可選擇將第一行作為列名。

如何在C#中將Excel工作簿用作DataSet?

使用IronXL,通過調用ToDataSet()方法,Excel工作簿可以用作DataSet,實現全面的數據操作。

使用庫操作Excel文件在C#中的優勢是什麼?

在C#中使用IronXL進行Excel文件操作提供了簡單和高效的優勢,支持多種Excel格式,支持數據上的操作,並提供了將工作表轉換為DataTables等功能。

在哪裡可以找到更多使用IronXL的資源?

您可以在IronXL的API參考頁面上找到更多資源和文檔,其中包含關於其功能、類和方法的詳細信息。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 1,686,155 | 版本: 2025.11 剛剛發布