C# 讀取 XLSX 檔案
要在 C# 中讀取 XLSX 檔案,請使用 IronXL 的 WorkBook.Load 方法來打開 Excel 檔案並存取工作表,以讀取儲存格資料、執行計算以及程式化地轉換為 DataTable 或 DataSet 格式。
快速入門:輕鬆載入工作簿並存取工作表
using IronXL,您可以在一行中使用 WorkBook.Load 方法載入 XLSX 檔案。然後立即存取其第一個或命名的工作表並開始讀取儲存格數值。
讀取 .XLSX 檔案 C#
- 為您的專案取得 IronXL
- 載入
WorkBook - 從
WorkSheet存取資料 - 應用像 Sum、Min 和 Max 這樣的函式
- 將
WorkSheet作為 DataTable、DataSet 等讀取
如何獲得我的專案的 IronXL?
IronXL.Excel 在您的專案中使用 IronXL 可以簡單地處理 C# 中的 Excel 檔案格式。 您可以通過直接下載安裝 IronXL,或者選擇使用 NuGet 安裝到 Visual Studio。 本軟體可免費用於開發。
Install-Package IronXL.Excel
在深入了解讀取 XLSX 檔案之前,探索全面的 IronXL 文件以了解所有可用功能。 IronXL 支援 .xls 和 .xlsx 格式,使其適用於傳統和現代 Excel 檔案。
教程
如何載入 WorkBook?
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
Imports IronXL
' Load the workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx") ' Excel file path
為何使用 WorkBook.Load() 方法?
在上述程式碼中,Load() 函式將 WorkBook 載入到 WorkBook 中。 可以通過存取 Excel 檔案的特定 WorkSheet 在 WorkBook 上執行任何型別的函式。Load() 方法會自動檢測檔案格式,無論是 XLS、XLSX、XLSM、XLTX 還是 CSV。欲了解更高級的載入情境,請參閱載入電子表格的詳細指南。
如何存取特定的 WorkSheet?
要存取 Excel 檔案的特定 WorkSheet,IronXL 提供 WorkBook 類。 它可以用於多種不同方式:
存取工作表的不同方法有哪些?
: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");
Imports IronXL
' Access sheet by name
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
WorkBook["SheetName"] 是在上述部分中聲明的 WorkSheet。
或
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];
Imports IronXL
' Access sheet by index
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
或
WorkBook.Load()
或
: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;
Imports IronXL
' Access the default worksheet
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
或
sample.xlsx
或
: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();
Imports IronXL
Imports System.Linq
' Access the first worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
或
workBook
或
: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();
Imports IronXL
Imports System.Linq
' Access the first or default worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.FirstOrDefault()
或
workBook
或
WorkBook.Load
或
WorkSheet
或
WorkSheet
或
workBook
或
WorkBook
何時應使用每種工作表存取方法?
每種方法都有理想的使用情境:
GetWorkSheet("name"):當您知道確切的工作表名稱時WorkSheets[index]:程式化地迴圈遍歷工作表DefaultWorkSheet:處理單張工作表檔案時的快速存取First()或FirstOrDefault(),適用於工作表名稱可能改變情況的安全選項
獲得 ExcelSheet workSheet 後,您可以從中獲取任何型別的資料並在其上執行所有的 Excel 函式。 如需更複雜的工作表操作,請參閱在 C# 中打開 Excel 工作表的指南。
如何存取 WorkSheet 的資料?
資料可以通過此過程從 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;
Imports IronXL
' Accessing data as a string
Dim dataString As String = workSheet("A1").ToString()
' Accessing data as an integer
Dim dataInt As Integer = workSheet("B1").Int32Value
IronXL 為不同的資料型別提供多種值存取器:
StringValue:讀取文字資料Int32Value:讀取整數DoubleValue:讀取小數DateTimeValue:讀取日期BoolValue:讀取真/假值
如何一次讀取多個儲存格?
您還可以從特定欄位的多個儲存格中獲取資料:
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
這將顯示從 A2 儲存格到 A10 儲存格的值。 要了解更高級的範圍選擇技巧,請參閱選擇範圍教程。
完整的實現看起來如何?
這裡提供了上述細節的完整程式碼範例:
: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);
}
Imports IronXL
Imports System
' Load an Excel file
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Specify the range
For Each cell In workSheet("B2:B10")
Console.WriteLine("Value is: {0}", cell.Text)
Next
它顯示了以下結果:
using Excel 檔案 Sample.xlsx:
這些方法呈現瞭如何輕鬆地在您的專案中使用 Excel 檔案資料。 如需閱讀不使用 Interop 的 Excel 檔案的實例,請參閱閱讀 Excel 範例。
如何對資料執行函式?
通過使用如下程式碼對 Excel WorkSheet 套用聚合函式如 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
Imports IronXL
' Apply aggregate functions
Dim sum As Decimal = workSheet("G2:G10").Sum() ' Sum of cells from G2 to G10
Dim min As Decimal = workSheet("G2:G10").Min() ' Minimum value in cells from G2 to G10
Dim max As Decimal = workSheet("G2:G10").Max() ' Maximum value in cells from G2 to G10
IronXL 支援大量數學函式,包括:
Average():計算平均值Count():計數非空儲存格CountIf():計數符合條件的儲存格Median():查找中間值StdDev():計算標準差
如何一起實現多個功能?
欲獲得更多細節,請查看我們的深入教程,了解如何寫入 C# Excel 檔案,其中包含有關聚合函式的詳細資訊。 您還可以探索 IronXL 中可用的數學函式完整清單。
: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);
Imports IronXL
Imports System
' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Calculate sum, minimum, and maximum for a range of cells
Dim sum As Decimal = workSheet("G2:G10").Sum()
Dim min As Decimal = workSheet("G2:G10").Min()
Dim max As Decimal = workSheet("G2:G10").Max()
' Output results
Console.WriteLine("Sum is: {0}", sum)
Console.WriteLine("Min is: {0}", min)
Console.WriteLine("Max is: {0}", max)
此程式碼顯示以下輸出:
這就是 Excel 檔案 Sample.xlsx 的樣子:
如何將 Excel WorkSheet 讀取為 DataTable?
using IronXL,可以輕鬆地將 Excel WorkSheet 作為 DataTable 來處理。 當您需要將 Excel 資料整合進現有資料處理流水線或將資料綁定到 UI 控件時,此功能特別有用。
基本轉換方法是什麼?
: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();
Imports IronXL
Imports System.Data
' Convert worksheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable()
如何使用第一行作為欄名?
要將 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);
Imports IronXL
Imports System.Data
' Convert worksheet to DataTable with the first row as column names
Dim dt As DataTable = workSheet.ToDataTable(True)
ToDataTable() 的布林參數將第一行設定為 DataTable 的欄名。 預設情況下,其值為 False。 這在處理包含標頭的結構化資料時特別有用。
如何遍歷 DataTable?
: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();
}
Imports IronXL
Imports System
Imports System.Data
' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Convert WorkSheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable(True) ' Use first row as column names
' Iterate through rows and columns and display data
For Each row As DataRow In dt.Rows ' Access rows
For i As Integer = 0 To dt.Columns.Count - 1 ' Access columns of corresponding row
Console.Write(row(i) & " ")
Next
Console.WriteLine()
Next
使用上述程式碼可以存取 WorkSheet 的每個儲存格值並按需要使用。 如需了解更高階的 DataTable 操作,請參考導入和匯出為 DataSet 的指南。
如何將 Excel 檔案讀取為 DataSet?
IronXL 提供了一個簡單的函式來將整個 Excel 檔案(WorkBook)作為 DataSet 使用。 使用 ToDataSet 方法將整個工作簿轉換為 DataSet。
在此範例中,我們將看到如何將 Excel 檔案用作 DataSet。
如何將工作簿轉換為 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);
}
Imports IronXL
Imports System
Imports System.Data
' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Convert the WorkBook to a DataSet
Dim ds As DataSet = workBook.ToDataSet()
' Iterate through tables in the DataSet and display table names
For Each dt As DataTable In ds.Tables
Console.WriteLine(dt.TableName)
Next
上述程式碼的輸出如下所示:
Excel 檔案 Sample.xlsx 看起來像這樣:
(center content omitted for brevity)
如何跨所有工作表存取每個儲存格值?
在上述範例中,我們可以輕鬆地將 Excel 檔案解析為 DataSet,並將 Excel 檔案的每個 DataTable 作為 DataTable 使用。 深入了解如何在此處解析 Excel 為 DataSet,其中有程式碼範例。
讓我們再看一個如何存取所有 ExcelSheets 的每個儲存格值的範例。 在這裡,我們可以存取 Excel 檔案每個 ExcelSheet 的每個儲存格值。
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
using IronXL;
using System;
// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Iterate through every WorkSheet in the WorkBook
foreach (WorkSheet workSheet in workBook.WorkSheets)
{
Console.WriteLine($"Worksheet: {workSheet.Name}");
// Access each filled cell value on the current WorkSheet
foreach (var cell in workSheet.FilledCells)
{
Console.WriteLine($"{cell.Address}: {cell.Text}");
}
}
Imports IronXL
Imports System
' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Iterate through every WorkSheet in the WorkBook
For Each workSheet As WorkSheet In workBook.WorkSheets
Console.WriteLine($"Worksheet: {workSheet.Name}")
' Access each filled cell value on the current WorkSheet
For Each cell In workSheet.FilledCells
Console.WriteLine($"{cell.Address}: {cell.Text}")
Next
Next
使用上述範例,方便地存取 Excel 檔案每個 ExcelSheet 的每個儲存格值。這種方法特別適合處理帶有多張工作表的工作簿,其中資料分佈在不同的標籤中。
要了解如何在不使用 Interop 的情況下讀取 Excel 檔案的更多資訊,請參閱此處的程式碼。 API 參考文件提供有關所有可用方法和屬性的詳細資訊,請參閱IronXL API Reference。
快速存取教程
WorkSheet
WorkSheet
WorkSheet
常見問題
我如何在 C# 中讀取 XLSX 檔案?
在 C# 中讀取 XLSX 檔案,請使用 IronXL 的 WorkBook.Load 方法。只需使用 IronXL.WorkBook.Load("your-file.xlsx") 載入 Excel 檔案,然後存取工作表以讀取儲存格資料、執行計算以及將其轉換為 DataTable 或 DataSet 格式。
在載入 Excel 檔案時支持哪些檔案格式?
IronXL 支援多種 Excel 檔案格式,包括 .xls、.xlsx、.xlsm、.xltx 和 .csv 檔案。WorkBook.Load 方法能自動檢測檔案格式,使其對於舊的和現代的 Excel 檔案都很適用。
如何為我的 C# 專案安裝 Excel 讀取程式庫?
您可以透過直接下載或使用 Visual Studio 的 NuGet Install 安裝 IronXL。該軟體免費提供開發用途,並提供一種簡單的方法在 C# 中操作 Excel 檔案格式。
有哪些不同的方式可以存取特定工作表?
IronXL 提供多種方式來存取工作表:您可以使用 workBook.GetWorkSheet("SheetName") 來根據名稱存取,workBook.WorkSheets[0] 來根據索引存取,或使用 workBook.WorkSheets.First() 獲取第一個工作表。
載入 Excel 資料後是否可以進行計算?
是的,使用 IronXL 載入 XLSX 檔案後,您可以在資料上應用各種函式如 Sum、Min 和 Max。該程式庫通過 WorkBook 物件提供對 Excel 檔案功能的完整存取。
能否將 Excel 工作表資料轉換為其他格式?
是的,IronXL 允許您讀取 WorkSheet 並將其轉換為各種格式,包括 DataTable、DataSet 等。這使您能輕鬆地將 Excel 資料整合到您的 C# 應用程式中。






