如何使用 IronXL 在 C# 中讀取 Excel 文件
在 C# 應用程式中讀取 Excel 檔案是業務軟體、資料處理管道和報表系統的常見需求。 使用 Microsoft Office Interop 的傳統方法需要在每台伺服器或工作站上安裝 Excel,這會造成脆弱的依賴關係,使部署和授權變得複雜。 IronXL 完全消除了這種依賴性——您的應用程式無需在環境中任何地方安裝 Office 即可讀取 XLSX、XLS、CSV 和其他電子表格格式。
本教學將引導您完成所需的每項技術:安裝庫、載入工作簿、提取鍵入的儲存格值、遍歷行和列、運行聚合計算以及建立完整的員工資料讀取器。 所有範例均使用 C#,頂級語句面向 .NET 10。
如何安裝 IronXL 進行 Excel 處理?
在 Visual Studio 中開啟 NuGet 套件管理器控制台,然後執行下列命令將 IronXL 新增至您的專案。 或者,如果您喜歡在終端機中操作,請使用第二行所示的 .NET CLI 命令:
Install-Package IronXL.Excel
dotnet add package IronXL.Excel
Install-Package IronXL.Excel
dotnet add package IronXL.Excel
該軟體包只需幾秒鐘即可安裝,並為您的專案添加託管程序集引用。 無需進行 COM 註冊,無需進行 Office 主互通組件管理,也無需管理特定版本的 Excel 相依性。
安裝完成後,在每個處理電子表格資料的檔案頂部新增 using 指令:
using IronXL;
using IronXL;
Imports IronXL
這個單一命名空間可讓您存取 WorkBook、WorkSheet、儲存格區域、類型化值屬性、聚合函數以及 IronXL 的所有其他類型。 IronXL.Excel 的 NuGet Gallery 頁面列出了所有可用的版本及其完整的依賴關係樹。
IronXL 支援哪些 Excel 檔案格式?
了解應用程式必須處理的格式,會影響您發出的 API 呼叫和專案採用的儲存決策。
XLSX (自 Excel 2007 起成為預設格式)是 XML 檔案的 ZIP 壓縮包。 它支援超過一百萬行資料、豐富的格式設定、透視表和命名範圍。 大多數現代資料管道都會產生 XLSX 輸出,因此這是您最常遇到的格式。
XLS是 Excel 2003 及更早版本所使用的傳統二進位格式。 有些企業系統仍然會匯出 XLS 格式,因此在與舊基礎設施整合時,對這種格式的可靠支援至關重要。 IronXL 無需任何特殊配置即可讀取 XLS 檔案。
XLSM為 XLSX 新增了巨集支援功能。 即使 IronXL 不執行嵌入的 VBA 程式碼,它也會從 XLSM 檔案中讀取電子表格數據,這是伺服器端資料提取的正確行為。
CSV 和 TSV是純文字表格格式,廣泛用於系統間的資料交換。 WorkBook.LoadCSV 處理逗號分隔的文件,IronXL 返回相同的 WorkBook 對象,您的程式碼已經知道如何導航該對象,從而保持您的資料讀取邏輯與來源格式無關。
IronXL 會在您呼叫 WorkBook.Load 時自動從檔案副檔名偵測檔案格式。 大多數情況下,您無需明確指定格式,這簡化了必須處理來自多個來源的輸入的程式碼。
| 格式 | 擴充功能 | 載入方法 | 注意事項 |
|---|---|---|---|
| 開啟 XML 工作簿 | .xlsx | WorkBook.Load | 預設現代格式 |
| 傳統二進位文件 | .xls | WorkBook.Load | Excel 2003 及更早版本 |
| 啟用巨集 | .xlsm | WorkBook.Load | 資料已讀取;宏未執行 |
| 逗號分隔 | .csv | WorkBook.LoadCSV | 最佳化的 CSV 解析器 |
| 製表符分隔 | .tsv | WorkBook.Load | 製表符分隔符號變體 |
如何載入和讀取Excel工作簿?
WorkBook.Load 方法是所有基於檔案的操作的入口點。 傳入檔案路徑,IronXL 將返回一個完整的工作簿對象,您可以立即對其進行查詢:
using IronXL;
// Load the workbook; format is detected automatically
WorkBook workbook = WorkBook.Load("Employees.xlsx");
// Access the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a single cell by A1 address
string companyName = sheet["A1"].StringValue;
Console.WriteLine($"Company: {companyName}");
// Access sheets by name or by zero-based index
WorkSheet byName = workbook.GetWorkSheet("Sales");
WorkSheet byIndex = workbook.WorkSheets[1];
// Load a password-protected file
WorkBook secured = WorkBook.Load("Confidential.xlsx", "p@ssw0rd");
using IronXL;
// Load the workbook; format is detected automatically
WorkBook workbook = WorkBook.Load("Employees.xlsx");
// Access the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a single cell by A1 address
string companyName = sheet["A1"].StringValue;
Console.WriteLine($"Company: {companyName}");
// Access sheets by name or by zero-based index
WorkSheet byName = workbook.GetWorkSheet("Sales");
WorkSheet byIndex = workbook.WorkSheets[1];
// Load a password-protected file
WorkBook secured = WorkBook.Load("Confidential.xlsx", "p@ssw0rd");
Imports IronXL
' Load the workbook; format is detected automatically
Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
' Access the first worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Read a single cell by A1 address
Dim companyName As String = sheet("A1").StringValue
Console.WriteLine($"Company: {companyName}")
' Access sheets by name or by zero-based index
Dim byName As WorkSheet = workbook.GetWorkSheet("Sales")
Dim byIndex As WorkSheet = workbook.WorkSheets(1)
' Load a password-protected file
Dim secured As WorkBook = WorkBook.Load("Confidential.xlsx", "p@ssw0rd")
DefaultWorkSheet 屬性傳回第一張工作表,涵蓋了大多數單頁檔案。 當您的檔案包含多個工作表時,GetWorkSheet 按名稱檢索,而 WorkSheets[n] 按從零開始的索引檢索。 WorkBook API 參考文件記錄了工作簿物件的每個重載和屬性。

輸入

輸出

如何從Excel中讀取已輸入的儲存格值?
IronXL 中的每個儲存格都公開了類型化屬性,這些屬性會傳回您需要的確切資料類型的值——無需手動解析或轉換。 類型化屬性會自動處理來自底層儲存格表示的強制轉換:
using IronXL;
WorkBook workbook = WorkBook.Load("Employees.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Extract typed values from row 2
int employeeId = sheet["A2"].IntValue;
string name = sheet["B2"].StringValue;
string department = sheet["C2"].StringValue;
decimal salary = sheet["D2"].DecimalValue;
DateTime hireDate = sheet["E2"].DateTimeValue;
Console.WriteLine($"ID: {employeeId}");
Console.WriteLine($"Name: {name}");
Console.WriteLine($"Department: {department}");
Console.WriteLine($"Salary: {salary:C}");
Console.WriteLine($"Hired: {hireDate:d}");
// Use the Text property for the formatted display value
string formattedSalary = sheet["D2"].Text; // "$75,000.00"
string formattedDate = sheet["E2"].Text; // "28/02/2026"
// Guard against empty cells before reading
if (!sheet["B3"].IsEmpty)
{
string value = sheet["B3"].StringValue;
}
using IronXL;
WorkBook workbook = WorkBook.Load("Employees.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Extract typed values from row 2
int employeeId = sheet["A2"].IntValue;
string name = sheet["B2"].StringValue;
string department = sheet["C2"].StringValue;
decimal salary = sheet["D2"].DecimalValue;
DateTime hireDate = sheet["E2"].DateTimeValue;
Console.WriteLine($"ID: {employeeId}");
Console.WriteLine($"Name: {name}");
Console.WriteLine($"Department: {department}");
Console.WriteLine($"Salary: {salary:C}");
Console.WriteLine($"Hired: {hireDate:d}");
// Use the Text property for the formatted display value
string formattedSalary = sheet["D2"].Text; // "$75,000.00"
string formattedDate = sheet["E2"].Text; // "28/02/2026"
// Guard against empty cells before reading
if (!sheet["B3"].IsEmpty)
{
string value = sheet["B3"].StringValue;
}
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Extract typed values from row 2
Dim employeeId As Integer = sheet("A2").IntValue
Dim name As String = sheet("B2").StringValue
Dim department As String = sheet("C2").StringValue
Dim salary As Decimal = sheet("D2").DecimalValue
Dim hireDate As DateTime = sheet("E2").DateTimeValue
Console.WriteLine($"ID: {employeeId}")
Console.WriteLine($"Name: {name}")
Console.WriteLine($"Department: {department}")
Console.WriteLine($"Salary: {salary:C}")
Console.WriteLine($"Hired: {hireDate:d}")
' Use the Text property for the formatted display value
Dim formattedSalary As String = sheet("D2").Text ' "$75,000.00"
Dim formattedDate As String = sheet("E2").Text ' "28/02/2026"
' Guard against empty cells before reading
If Not sheet("B3").IsEmpty Then
Dim value As String = sheet("B3").StringValue
End If
Text 屬性傳回 Excel 中格式化的顯示值-當您需要格式化的數字字串而不是原始數值時非常有用。 對於包含Excel 公式的儲存格,IronXL 會計算表達式並透過相同的類型屬性傳回計算結果。 其他值屬性 -- BoolValue, DoubleValue, FloatValue -- 出現在儲存格值參考中。
如何遍歷 Excel 中的行和列?
處理資料集中的每一筆記錄都需要遍歷行和列。 IronXL 的範圍語法直接對應於 Excel 的 A1 表示法,因此對於任何編寫過電子表格公式的人來說,選擇單元格區域的操作都很熟悉:
using IronXL;
WorkBook workbook = WorkBook.Load("Employees.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Iterate a single column range
Console.WriteLine("Employee List:");
foreach (var cell in sheet["B2:B100"])
{
if (!string.IsNullOrEmpty(cell.Text))
Console.WriteLine($" - {cell.Text}");
}
// Iterate all rows and all columns using the Rows property
foreach (var row in sheet.Rows)
{
foreach (var cell in row)
Console.Write(cell.Text.PadRight(15));
Console.WriteLine();
}
using IronXL;
WorkBook workbook = WorkBook.Load("Employees.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Iterate a single column range
Console.WriteLine("Employee List:");
foreach (var cell in sheet["B2:B100"])
{
if (!string.IsNullOrEmpty(cell.Text))
Console.WriteLine($" - {cell.Text}");
}
// Iterate all rows and all columns using the Rows property
foreach (var row in sheet.Rows)
{
foreach (var cell in row)
Console.Write(cell.Text.PadRight(15));
Console.WriteLine();
}
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Iterate a single column range
Console.WriteLine("Employee List:")
For Each cell In sheet("B2:B100")
If Not String.IsNullOrEmpty(cell.Text) Then
Console.WriteLine($" - {cell.Text}")
End If
Next
' Iterate all rows and all columns using the Rows property
For Each row In sheet.Rows
For Each cell In row
Console.Write(cell.Text.PadRight(15))
Next
Console.WriteLine()
Next
範圍 sheet["B2:B100"] 傳回單元格物件的可枚舉集合。 檢查 string.IsNullOrEmpty 可以優雅地跳過空白行。 Rows 屬性(在工作表資料範圍指南中有詳細說明)一次遍歷工作表一行,並顯示每一行的儲存格,而無需事先知道列數。
輸出

如何在Excel資料上運行聚合計算?
IronXL 包含內建的聚合函數,可直接在儲存格區域上計算結果-無需手動累積循環:
using IronXL;
WorkBook workbook = WorkBook.Load("Employees.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Built-in aggregate methods work on any named range
decimal total = sheet["D2:D200"].Sum();
decimal highest = sheet["D2:D200"].Max();
decimal lowest = sheet["D2:D200"].Min();
decimal average = sheet["D2:D200"].Avg();
Console.WriteLine($"Total Payroll: {total:C}");
Console.WriteLine($"Highest Salary: {highest:C}");
Console.WriteLine($"Lowest Salary: {lowest:C}");
Console.WriteLine($"Average Salary: {average:C}");
// Combine with LINQ for filtered aggregation
decimal itTotal = sheet["D2:D200"]
.Where(c => sheet[$"C{c.RowIndex}"].StringValue == "IT")
.Sum(c => c.DecimalValue);
Console.WriteLine($"IT Department Total: {itTotal:C}");
using IronXL;
WorkBook workbook = WorkBook.Load("Employees.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Built-in aggregate methods work on any named range
decimal total = sheet["D2:D200"].Sum();
decimal highest = sheet["D2:D200"].Max();
decimal lowest = sheet["D2:D200"].Min();
decimal average = sheet["D2:D200"].Avg();
Console.WriteLine($"Total Payroll: {total:C}");
Console.WriteLine($"Highest Salary: {highest:C}");
Console.WriteLine($"Lowest Salary: {lowest:C}");
Console.WriteLine($"Average Salary: {average:C}");
// Combine with LINQ for filtered aggregation
decimal itTotal = sheet["D2:D200"]
.Where(c => sheet[$"C{c.RowIndex}"].StringValue == "IT")
.Sum(c => c.DecimalValue);
Console.WriteLine($"IT Department Total: {itTotal:C}");
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Built-in aggregate methods work on any named range
Dim total As Decimal = sheet("D2:D200").Sum()
Dim highest As Decimal = sheet("D2:D200").Max()
Dim lowest As Decimal = sheet("D2:D200").Min()
Dim average As Decimal = sheet("D2:D200").Avg()
Console.WriteLine($"Total Payroll: {total:C}")
Console.WriteLine($"Highest Salary: {highest:C}")
Console.WriteLine($"Lowest Salary: {lowest:C}")
Console.WriteLine($"Average Salary: {average:C}")
' Combine with LINQ for filtered aggregation
Dim itTotal As Decimal = sheet("D2:D200") _
.Where(Function(c) sheet($"C{c.RowIndex}").StringValue = "IT") _
.Sum(Function(c) c.DecimalValue)
Console.WriteLine($"IT Department Total: {itTotal:C}")
Sum、Min、Max 和 Avg 會自動跳過空白儲存格,並在後台處理數值轉換。 將 LINQ 查詢連結到該範圍,即可獲得篩選後的聚合結果——部門小計、日期範圍總和以及條件計數——所有這些都無需離開 IronXL API。
如何建立一個完整的員工資料讀取器?
以下範例將目前為止介紹的所有內容整合到一個可用於生產的控制台應用程式中,該應用程式會載入員工電子表格、格式化每筆記錄、累加薪資總額、處理回寫並優雅地擷取錯誤:
using IronXL;
try
{
WorkBook workbook = WorkBook.Load("Employees.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
Console.WriteLine("=== Employee Data Report ===\n");
int rowNumber = 2;
decimal totalSalary = 0m;
int employeeCount = 0;
while (!string.IsNullOrEmpty(sheet[$"A{rowNumber}"].StringValue))
{
int id = sheet[$"A{rowNumber}"].IntValue;
string name = sheet[$"B{rowNumber}"].StringValue;
string department = sheet[$"C{rowNumber}"].StringValue;
decimal salary = sheet[$"D{rowNumber}"].DecimalValue;
Console.WriteLine($"{id,4} {name,-20} {department,-15} {salary,10:C}");
totalSalary += salary;
employeeCount += 1;
rowNumber += 1;
}
Console.WriteLine($"\nTotal Employees: {employeeCount}");
Console.WriteLine($"Total Payroll: {totalSalary:C}");
// Write a new record back to the sheet and save
sheet["A10"].Value = 1010;
sheet["B10"].Value = "Jane Doe";
sheet["C10"].Value = "Finance";
sheet["D10"].Value = 75000;
workbook.SaveAs("Employees-Updated.xlsx");
}
catch (Exception ex)
{
Console.WriteLine($"Error reading Excel file: {ex.Message}");
}
using IronXL;
try
{
WorkBook workbook = WorkBook.Load("Employees.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
Console.WriteLine("=== Employee Data Report ===\n");
int rowNumber = 2;
decimal totalSalary = 0m;
int employeeCount = 0;
while (!string.IsNullOrEmpty(sheet[$"A{rowNumber}"].StringValue))
{
int id = sheet[$"A{rowNumber}"].IntValue;
string name = sheet[$"B{rowNumber}"].StringValue;
string department = sheet[$"C{rowNumber}"].StringValue;
decimal salary = sheet[$"D{rowNumber}"].DecimalValue;
Console.WriteLine($"{id,4} {name,-20} {department,-15} {salary,10:C}");
totalSalary += salary;
employeeCount += 1;
rowNumber += 1;
}
Console.WriteLine($"\nTotal Employees: {employeeCount}");
Console.WriteLine($"Total Payroll: {totalSalary:C}");
// Write a new record back to the sheet and save
sheet["A10"].Value = 1010;
sheet["B10"].Value = "Jane Doe";
sheet["C10"].Value = "Finance";
sheet["D10"].Value = 75000;
workbook.SaveAs("Employees-Updated.xlsx");
}
catch (Exception ex)
{
Console.WriteLine($"Error reading Excel file: {ex.Message}");
}
Imports IronXL
Try
Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
Console.WriteLine("=== Employee Data Report ===" & vbCrLf)
Dim rowNumber As Integer = 2
Dim totalSalary As Decimal = 0D
Dim employeeCount As Integer = 0
While Not String.IsNullOrEmpty(sheet($"A{rowNumber}").StringValue)
Dim id As Integer = sheet($"A{rowNumber}").IntValue
Dim name As String = sheet($"B{rowNumber}").StringValue
Dim department As String = sheet($"C{rowNumber}").StringValue
Dim salary As Decimal = sheet($"D{rowNumber}").DecimalValue
Console.WriteLine($"{id,4} {name,-20} {department,-15} {salary,10:C}")
totalSalary += salary
employeeCount += 1
rowNumber += 1
End While
Console.WriteLine(vbCrLf & $"Total Employees: {employeeCount}")
Console.WriteLine($"Total Payroll: {totalSalary:C}")
' Write a new record back to the sheet and save
sheet("A10").Value = 1010
sheet("B10").Value = "Jane Doe"
sheet("C10").Value = "Finance"
sheet("D10").Value = 75000
workbook.SaveAs("Employees-Updated.xlsx")
Catch ex As Exception
Console.WriteLine($"Error reading Excel file: {ex.Message}")
End Try
當 A 列為空時,循環終止,這使得讀取器能夠適應任何長度的電子表格,而無需硬編碼行數。 寫回值遵循與讀取相同的儲存格位址語法,並且 SaveAs 將變更持久化到新檔案中,因此原始檔案保持不變。 try/catch 程式碼區塊處理遺失的檔案、鎖定的工作簿和損壞的資料—所有這些情況都會在生產環境中發生,因為輸入檔案來自外部來源。
輸出

建立電子表格的操作指南和將 XLSX 轉換為 CSV 的指南展示如何在端到端工作流程中結合讀取和寫入操作。 單元格樣式指南涵蓋了格式化輸出時的字體大小、顏色和邊框。

您如何應對高階閱讀場景?
在實際專案中,會出現一些不太常見但很重要的情況。 命名範圍、工作表發現和 CSV 載入均有專門的 API 支援。
命名範圍可讓您透過邏輯標籤而不是儲存格位址來引用資料。 如果工作簿作者定義了一個名為 SalaryTable 的命名範圍,則可以透過 GetRangeByName 直接存取它:
var range = workbook.GetRangeByName("SalaryTable");
decimal total = range.Sum();
Console.WriteLine($"Named range total: {total:C}");
var range = workbook.GetRangeByName("SalaryTable");
decimal total = range.Sum();
Console.WriteLine($"Named range total: {total:C}");
Dim range = workbook.GetRangeByName("SalaryTable")
Dim total As Decimal = range.Sum()
Console.WriteLine($"Named range total: {total:C}")
工作表發現功能會列出工作簿中的每個工作表,這在處理包含數量不固定的工作表的文件時非常有用:
foreach (WorkSheet ws in workbook.WorkSheets)
Console.WriteLine($"Sheet: {ws.Name}, Rows: {ws.RowCount}");
foreach (WorkSheet ws in workbook.WorkSheets)
Console.WriteLine($"Sheet: {ws.Name}, Rows: {ws.RowCount}");
For Each ws As WorkSheet In workbook.WorkSheets
Console.WriteLine($"Sheet: {ws.Name}, Rows: {ws.RowCount}")
Next
CSV 載入使用專門針對純文字檔案最佳化的方法,傳回 WorkSheet,您可以使用相同的範圍 API 進行導覽:
WorkBook csv = WorkBook.LoadCSV("data.csv");
WorkSheet first = csv.DefaultWorkSheet;
Console.WriteLine(first["A1"].StringValue);
WorkBook csv = WorkBook.LoadCSV("data.csv");
WorkSheet first = csv.DefaultWorkSheet;
Console.WriteLine(first["A1"].StringValue);
Dim csv As WorkBook = WorkBook.LoadCSV("data.csv")
Dim first As WorkSheet = csv.DefaultWorkSheet
Console.WriteLine(first("A1").StringValue)
這些模式涵蓋了資料遷移項目、ETL 管道和自動化報告系統中出現的高階讀取場景。 有關完整的 API 接口,請參閱IronXL 物件參考。
其他權威參考資料:
IronXL 文件主頁 如何編輯Excel公式 -如何使用數學函數 如何選擇範圍 ECMA-376 Open XML 規格-定義 XLSX 格式的權威標準
- Microsoft Open XML SDK 文件-底層文件結構的參考資料
- NuGet Gallery -- IronXL.Excel -- 包含版本歷史記錄和下載統計資料的軟體套件頁面
下一步計劃是什麼?
IronXL 將依賴關係繁多的 Interop 挑戰中的 Excel 檔案讀取操作簡化為幾行簡單的 C# 程式碼。 載入工作簿、提取鍵入的值、逐行迭代、運行聚合計算以及處理邊界情況,所有這些都遵循相同的一致 API 模式——無需在部署環境中安裝 Microsoft Office。
從教學過渡到生產環境:
1.開始免費試用,解鎖 IronXL 的全部功能,並在購買許可證之前使用您自己的 Excel 檔案進行驗證。
- 瀏覽IronXL 的完整文檔,以取得有關編寫、格式化、樣式設定和轉換電子表格的指南。
- 探索物件參考和完整 API ,發現庫中可用的每個類別、方法和屬性。
- 如果您的工作流程需要產生輸出檔案以及讀取輸入文件,請查看建立電子表格的操作指南。
- 查看IronXL 部落格文章索引,以了解更多涵蓋實際情境(例如報告產生、資料驗證和多工作表合併)的教學課程。
常見問題解答
IronXL 是什麼?
IronXL 是一個 .NET 函式庫,可讓開發人員閱讀、編輯和建立各種格式的 Excel 檔案,例如 XLSX 和 XLS,而無需安裝 Microsoft Office。
如何使用 IronXL 在 C# 中讀取 Excel 檔案?
呼叫 WorkBook.Load 並傳入檔案路徑以開啟工作簿,然後使用 A1 表示法和類型屬性(例如 StringValue、IntValue 和 DecimalValue)存取儲存格。
為何選擇 IronXL 而非 Microsoft Office Interop 來閱讀 Excel 檔案?
IronXL 無需安裝 Microsoft Office,消除了 COM 依賴項,簡化了伺服器端部署。
IronXL可以讀取哪些Excel檔案格式?
IronXL 支援讀取 XLSX、XLS、XLSM、CSV 和 TSV 格式的檔案。格式偵測基於檔案副檔名自動完成。
IronXL 能有效處理大型 Excel 文件嗎?
是的,IronXL 針對效能進行了最佳化,可以處理大型 Excel 文件,因此適用於資料密集型應用程式。
IronXL 是否相容於 .NET 10?
是的,IronXL 支援包括 .NET 10 在內的現代 .NET 版本以及 .NET Framework 專案。
如何使用 IronXL 進行聚合計算?
對任意單元格區域使用內建的 Sum、Min、Max 和 Avg 方法。這些方法會自動跳過空白單元格。
IronXL 能讀取受密碼保護的 Excel 檔案嗎?
是的,將密碼作為第二個參數傳遞給 WorkBook.Load:WorkBook.Load("file.xlsx", "password")。


