C# 讀取Excel檔案:XLSX 檔案操作完整指南
要在 C# 中進行XLSX檔案操作,可以使用 IronXL 的 WorkBook.Load 方法開啟 Excel 文件並存取工作表,以讀取Excel檔案中的儲存格資料、執行計算並以程式設計方式轉換為 DataTable 或 DataSet 格式。
快速入門:輕鬆載入工作簿並存取工作表
使用IronXL,您只需一行程式碼即可透過 WorkBook.Load 方法載入 XLSX 檔案。然後,您可以立即存取其第一個工作表或指定工作表,並開始讀取儲存格值。
- 為您的專案選擇IronXL
- 載入`WorkBook`
- 從`WorkSheet`存取數據
- 應用求和、最小值和最大值等函數
- 將`WorkSheet`讀取為資料表、資料集等
我如何才能在我的專案中使用IronXL ?
在您的專案中使用IronXL ,可以以簡單的方式在 C# 中處理 Excel 檔案格式。 你可以透過直接下載安裝IronXL ,或者也可以使用NuGet Install for Visual Studio 。 該軟體可免費用於開發。
Install-Package IronXL.Excel
在深入了解 XLSX 文件之前,請先查閱IronXL 的綜合文檔,以了解所有可用功能。 IronXL同時支援 .xls 和 .xlsx 格式,使其能夠靈活地處理傳統和現代 Excel 檔案。
操作指南
如何載入工作簿?
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() 方法?
在上面的程式碼中,WorkBook.Load() 函數將 sample.xlsx 載入到 workBook 中。 透過存取 Excel 檔案的特定工作表,可以對 workBook 執行任何類型的操作。 WorkBook.Load 方法會自動偵測檔案格式,無論是 XLS、XLSX、XLSM、XLTX 或 CSV。有關更進階的載入場景,請參閱電子表格載入的詳細指南。
如何存取特定工作表?
要存取 Excel 檔案的特定 WorkSheet, 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");
Imports IronXL
' Access sheet by name
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
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];
Imports IronXL
' Access sheet by index
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
或者
: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
或者
: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()
或者
: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()
我應該在什麼情況下使用每種工作表存取方法?
每種方法都有其理想的應用場景:
GetWorkSheet("name"):當您知道確切的工作表名稱時WorkSheets[index]:用於以程式設計方式遍歷工作表DefaultWorkSheet:處理單頁文件時快速訪問First()或FirstOrDefault():當工作表名稱可能變更時的安全選項
取得 ExcelSheet workSheet 後,您可以從中取得任何類型的資料並對其執行所有 Excel 功能。 如需更複雜的工作表操作,請參閱在 C# 中開啟 Excel 工作表的指南。
如何存取工作表中的資料?
可透過以下步驟從 Excel 表格 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
它顯示以下結果:
使用 Excel 檔案 Sample.xlsx:
這些方法表明,在專案中使用 Excel 文件資料是多麼輕鬆便捷。 如需如何在不使用 Interop 的情況下讀取 Excel 檔案的實際範例,請瀏覽讀取 Excel 範例。
如何對資料執行函數操作?
使用以下程式碼,透過應用 Sum、Min 或 Max 等聚合函數,從 Excel 存取篩選後的資料:
有哪些聚合函數可用?
: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工作表讀取為資料表?
使用IronXL,可以輕鬆地將 Excel WorkSheet 作為資料表進行操作。 當您需要將 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()
如何將第一行用作列標題?
要將 Excel 工作表的第一行用作資料表列名:
: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。 這在處理包含標題的結構化資料時尤其有用。
如何遍歷數據表?
: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檔案讀取為資料集?
IronXL提供了一個簡單的功能,可以將完整的 Excel 檔案 (WorkBook) 用作資料集。 使用 ToDataSet 方法將整個工作簿轉換為 DataSet。
在這個例子中,我們將看到如何將 Excel 檔案用作資料集。
如何將工作簿轉換為資料集?
: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 的內容如下:
如何存取所有工作表中每個儲存格的值?
在上面的範例中,我們可以輕鬆地將 Excel 檔案解析為 DataSet,並將 Excel 檔案中的每個 WorkSheet 元素作為 DataTable 進行操作。 深入了解如何將 Excel 解析為資料集,本文將提供程式碼範例。
讓我們再來看一個例子,了解如何存取所有 Excel 工作表中每個儲存格的值。 在這裡,我們可以存取 Excel 檔案中每個 WorkSheet 的每個儲存格的值。
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
// 此代碼段不可用!
' 此代碼段不可用!
以上述範例為例,可以方便地存取 Excel 文件中每個工作表的每個儲存格的值。這種方法在處理資料分佈在不同工作表中的多工作表工作簿時尤其有用。
有關如何在不使用 Interop 的情況下讀取 Excel 文件的更多信息,請查看此處的程式碼。 API 參考文件提供了有關IronXL API 參考中所有可用方法和屬性的全面詳細資訊。
教程快速訪問
請參閱文檔,以了解有關 IronXL 的功能、類別、方法欄位、命名空間和枚舉的更多資訊。
IronXL API 參考常見問題解答
如何在 C# 中讀取 XLSX 檔案?
要在 C# 中讀取 XLSX 檔案,請使用 IronXL 的 WorkBook.Load 方法。只需使用 IronXL.WorkBook.Load("your-file.xlsx") 載入 Excel 檔案,然後以程式化方式存取工作表以讀取儲存格資料、執行計算,以及轉換為 DataTable 或 DataSet 格式。
載入 Excel 檔案時支援哪些檔案格式?
IronXL.Excel 支援多種 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# 應用程式中。







