IRONSOFTWAREHOME
USING IRONXL

如何在 IronXL 中使用 .NET Core CSV 讀取器:實用範例

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

在 .NET Core 應用程式中處理 CSV 檔案操作是資料匯入和匯出常見的需求。 然而,開發人員在嘗試有效率地剖析 CSV 檔案內容時,常常會遇到不同的分隔符號、資料型別轉換及效能問題。 雖然像 CsvHelper 套件和 TextFieldParser 這樣的函式庫存在於 CSV 剖析中,但並不是所有都能提供 Excel 互通性和強大的例外處理能力。 IronXL 是一種經過實戰考驗的 CSV 剖析解決方案,可以處理 CSV 和 Excel 格式,為大規模批次處理場景提供強大的效能。 本教程展示如何有效地使用 IronXL 作為您的 .NET Core CSV 讀取器,通過實際且易於遵循的範例來有效率地剖析 CSV 資料,包括使用非同步操作來提高應用程式的回應性。 為開源 CSV 工具貢獻改進或提交 pull request 的開發人員也會發現 IronXL 的清晰 API 是一個有價值的參考,特別是在管理包含重複值、重複條目的資料集或需要在資料匯入過程中進行資料驗證時。

.NET 生態系統中有幾個套件可以處理 CSV 檔案操作,包括像 EPPlus、NPOI 和 OpenXML 這樣的替代方案,但 IronXL 的多功能性使其成為希望超越簡單 CSV 讀取並在單一 CSV 函式庫內享受 Excel 互通性的開發人員的首選,尤其是對於 ETL 操作和企業應用中的報告生成任務來說。 選擇合適的剖析器取決於您的具體需求,因此本指南會帶您通過現實世界的模式以幫助您做出明智的決定。

如何使用 .NET Core CSV Reader,IronXL 的實用範例:圖片 1 - IronXL

為什麼選擇 IronXL 作為您的 .NET Core CSV 讀取器?

在選擇 .NET Core CSV 讀取器時,IronXL 提供了若干相較傳統 CSV 剖析函式庫更具說服力的優勢。 IronXL 與 .NET Core 的現代架構整合,同時保持與 .NET Framework 專案的向後相容性。 此解決方案消除了開發人員在處理 CSV 檔案操作時面臨的常見痛點,包括:

  • 對國際字元集的自動編碼偵測
  • 無需手動配置的智慧分隔符號識別
  • 從幾 KB 到幾 GB 檔案的記憶體有效處理
  • 內建的資料型別推斷和轉換
  • 在各平台上處理回車和換行符號
  • 即使使用 CSV 資料也支持 Excel 公式
  • 在 Windows、Linux 和 macOS 上具有跨平台可靠性

與需要大量配置和手動剖析邏輯的基本 CSV 讀取器不同,IronXL 自動處理邊緣情況,例如包含分隔符號的引號欄位、多行單元格值和特殊字元。 該函式庫的架構通過延遲載入和串流功能確保最佳性能,使其適合於小型配置檔案和大型資料處理任務。 IronXL 可以在需要時跳過標題行並有效地分割複雜的資料結構。 了解更多詳情,請參閱 IronXL 功能概述

對於從遺留系統轉移的開發人員,IronXL 提供了一個熟悉的 API,減少學習曲線,同時提供現代的 async/await 模式以提高應用程式的回應性。 這使其成為現代化資料處理基礎設施的團隊的理想選擇。 請參閱完整的 IronXL 文件 以獲取 API 引用和配置選項。

如何安裝 IronXL 為 CSV 檔案閱讀?

在您的 .NET Core 專案中安裝 IronXL 只需幾秒鐘,無論您是建立主控台應用程式、ASP.NET Core Web 應用、還是 Windows Forms 應用程式。 要在 .NET Core 中高效解析 CSV 檔案並開始讀取 CSV 資料,請在 Visual Studio 中打開套件管理器控制台並運行:

PM > Install-Package IronXL.Excel

或使用 .NET CLI:

dotnet add package IronXL.Excel

如何使用 .NET Core CSV Reader,IronXL 的實用範例:圖片 2 - 安裝

或者,使用 NuGet 套件管理器 UI,搜尋 "IronXL.Excel" 並點擊安裝。 在遷移到 .NET Core 的過程中,該函式庫與現有的 .NET 大框架項目整合。 您還可以從 IronXL NuGet 頁面直接引用它。

安裝完成後,將命名空間加入您的程式碼中:

using IronXL;

此設置讓您能夠在不需要 Microsoft Office 或 Interop 依賴的情況下存取強大的 CSV 讀取功能,非常適合於雲部署和 Docker 容器。 有關詳細的安裝說明和配置設置,請查看 IronXL 安裝指南 文件。

如何使用 IronXL 的 LoadCSV 方法讀取 CSV 檔案?

IronXL 使用其 LoadCSV 方法使 CSV 檔案的處理變得簡單明了,該方法能高效處理 CSV 標頭、CSV 欄和 CSV 行,如下例所示:

// Load CSV file into a WorkBook object for .NET Core CSV reading
var workbook = WorkBook.LoadCSV("Budget.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ",");
// Access the default worksheet containing parsed CSV data
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Read specific cell values with type-safe methods
string cellValue = worksheet["A1"].StringValue;
// Iterate through a range for bulk CSV data processing
foreach (var cell in worksheet["A1:C10"])
{
    Console.WriteLine($"Cell {cell.AddressString}: {cell.Text}");
}

LoadCSV 方法建立一個 WorkBook 物件,它代表您的 CSV 資料結構在記憶體中使用最佳化的記憶體流處理。 fileFormat 參數指定了處理的內部格式,而 listDelimiter 定義了用於您 CSV 檔案中的分隔字元—支持制表符分隔的檔案和管道分隔格式。

輸入和輸出

如何使用 .NET Core CSV Reader,IronXL 的實用範例:圖片 5 - 範例 CSV 內容

在處理從包含 sep= 行(有時稱為 "sep takes" 標記)的系統導出的 CSV 檔案時,IronXL 會智能地讀取此元資料以自動確定正確的分隔符。 此功能在處理可能使用分號、製表符或管道而不是逗號的地區性 CSV 格式時節省了時間,確保在字元集間的適當編碼處理。

預設的 WorkSheet 屬性即時提供對解析後的 CSV 資料的存取,作為工作表,使得單個單元格或基於範圍的資料提取成為可能。 您可以使用 IntValueDecimalValue 等屬性獲得資料,進行型別安全的操作和內建型別轉換。 對於更複雜的資料操作和轉換,探索 IronXL 的 單元格格式選項和範圍選擇 功能。

如何將 CSV 資料映射到 C#類別並進行資料驗證?

您可以將 CSV 資料直接映射到 C# 物件,進行欄位映射和資料驗證。 例如,想像一個包含姓名、年齡和城市欄位的 CSV 檔案。 定義一個具有屬性映射的模型,如下所示:

public record Customer(string Name, int Age, string City)
{
    public bool IsValid() => !string.IsNullOrEmpty(Name) && Age > 0;
}

// Parse CSV rows into typed objects
var customers = new List<Customer>();
for (int row = 2; row <= worksheet.RowCount; row++)
{
    var customer = new Customer(
        Name: worksheet[$"A{row}"].StringValue,
        Age:  worksheet[$"B{row}"].IntValue,
        City: worksheet[$"C{row}"].StringValue
    );
    if (customer.IsValid())
        customers.Add(customer);
}
// Output the records
foreach (var record in customers)
{
    Console.WriteLine($"Customer: {record.Name}, Age: {record.Age}, City: {record.City}");
}

using IronXL,工作表中的每一行都會映射到一個型別化的物件,為資料處理、序列化為 JSON 或正確進行異常處理的導出到另一格式做好準備。 這種方法使您能夠從 CSV 資料中建立強型別的記錄,且幾乎不需冗長的模板。 要進一步了解,可以查看 閱讀 CSV 檔案教程

如何處理不同的分隔符和轉換為 DataTable?

真實世界的 CSV 檔案格式經常使用逗號以外的各種分隔符,這需要靈活的處理。 IronXL 優雅地處理此問題,具有自動分隔符偵測功能:

// Load CSV with semicolon delimiter
WorkBook workbook = WorkBook.LoadCSV("products.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ";");
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert to DataTable for database operations
DataTable dataTable = worksheet.ToDataTable(true);
// Process the DataTable
foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine($"Product: {row["ProductName"]}, Price: {row["Price"]}");
}

ToDataTable 方法將工作表資料轉換為 .NET 中的 DataTable,帶有布林參數以指示是否將首行用作列標題。 此轉換對於資料庫操作、ASP.NET Core 應用中的資料綁定或需要應用已存在的 DataTable 處理邏輯以進行 SQL Server 整合時特別有用。 生成的 DataTable 維持資料型別和架構資訊,可以直接用於 SqlBulkCopy 以有效率地批量導入操作。

了解更多關於導入 CSV 到 DataTable資料庫整合 的詳細指導。

如何將 DataTable 導出回 CSV?

DataTable 中處理完資料后,您通常需要將結果寫回到 CSV 檔案中。IronXL 在這個方向上也能處理:

// Load a DataTable from your data source
DataTable exportTable = GetProcessedData(); // your data source method

// Create a new workbook and populate it from the DataTable
WorkBook outputWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet outputSheet = outputWorkbook.DefaultWorkSheet;

// Write headers from DataTable columns
for (int col = 0; col < exportTable.Columns.Count; col++)
{
    outputSheet[0, col].Value = exportTable.Columns[col].ColumnName;
}

// Write rows
for (int row = 0; row < exportTable.Rows.Count; row++)
{
    for (int col = 0; col < exportTable.Columns.Count; col++)
    {
        outputSheet[row + 1, col].Value = exportTable.Rows[row][col]?.ToString();
    }
}

// Save as CSV
outputWorkbook.SaveAsCsv("output.csv", delimiter: ",");
Console.WriteLine("Export complete.");

此模式适用于 ETL 管道,其中資料被載入、轉換,然後寫入新檔案。欲了解更多導出格式,請參閱 C# 導出到 CSV 教程DataTable 到 Excel 指導

如何在 CSV 和 Excel 格式之間進行轉換?

IronXL 的一個突出特點是 CSV 到 Excel 的轉換和 Excel 到 CSV 的轉化,這對於資料遷移專案至關重要。 以下是展示此功能的範例:

// Load CSV and save as Excel
WorkBook csvWorkbook = WorkBook.LoadCSV("report.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ",");
// Save as Excel file
csvWorkbook.SaveAs("report.xlsx");
// Or load Excel and export to CSV
WorkBook excelWorkbook = WorkBook.Load("data.xlsx");
excelWorkbook.SaveAsCsv("exported_data.csv", delimiter: ",");

此雙向轉換在允許各種文件轉換場景的同時保留資料完整性和格式靈活性。 SaveAs 方法自動從文件擴展名中檢測所需的格式,支持 XLSX、XLS 和其他 Excel 格式,並輔以工作表管理。 使用 SaveAsCsv 保存到 CSV 時,您可以指定自訂的分隔符號和文字編碼來滿足您的需求。

當與要求特定文件格式進行資料交換的系統整合時,這一功能是非常有價值的。 對於從其他函式庫遷移或評估手動剖析替代方案的開發人員,看看 IronXL 在 Stack Overflow 上討論的熱門替代方案.NET 社區中的效能考量。 有關更多文件格式轉換模式,請存取轉換 Excel 試算表指導

如何在不出現記憶體問題的情況下讀取大型 CSV 檔案?

處理大型 CSV 檔案(即由數百萬行組成的檔案)需要謹慎對待記憶體。 IronXL 內部使用延遲載入,這意味著工作表行是按需讀取的,而不是一次性讀取的。 若要在遍歷大資料集時保持記憶體使用率低,請按批次處理行:

WorkBook workbook = WorkBook.LoadCSV("large-dataset.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ",");
WorkSheet worksheet = workbook.DefaultWorkSheet;

int batchSize = 1000;
int totalRows = worksheet.RowCount;

for (int start = 1; start <= totalRows; start += batchSize)
{
    int end = Math.Min(start + batchSize - 1, totalRows);
    for (int row = start; row <= end; row++)
    {
        string id   = worksheet[$"A{row}"].StringValue;
        string name = worksheet[$"B{row}"].StringValue;
        // Process each record here
        Console.WriteLine($"Row {row}: {id} - {name}");
    }
    Console.WriteLine($"Processed batch {start}-{end}");
}

這種技術保持堆分配的可預測性,避免大型資料集上的記憶體不足錯誤。 此模式在導出時同樣適用——增量寫入行數並在最後一次性保存。 如需進一步的提示,請參閱 檔案大小限制指導

IronXL 提供哪些針對企業 CSV 處理的高級功能?

IronXL 提供的企業級功能使其與基本 CSV 剖析器區別開來,支持單元測試和除錯工具。 該函式庫具有跨平臺相容性,可運行在 Windows、Linux、macOS 及 Docker 容器,這對於現代 .NET Core 部署和微服務架構至關重要。 根據 微軟的文件 ,跨平臺支持對於雲原生應用和 Azure 部署至關重要。

除了技術能力外,IronXL 包含專業支援和所有授權的定期更新,確保與最新 .NET 版本和安全補丁的相容性。 此商業支援確保了在生產環境中開放原始碼函式庫可能會短欠的關鍵應用的可靠性。 該函式庫通過優化的記憶體管理高效處理大型資料集,並支持高級情境,例如:

IronXL 高級功能總結
功能描述使用範例
公式計算在匯入後對 CSV 資料進行 Excel 公式評估財務報告、聚合
保留單元格格式在轉換期間保留數字格式、日期格式會計出口、時間敏感資料
多工作表工作簿操作將多個 CSV 檔合併到一個具名工作表的工作簿中月度報告整合
資料聚合在範圍內的加總、平均、計數儀表板生成、KPI 計算
範圍排序按一個或多個列排序行排名輸出、字母排序

對於需要可擴展性和負載均衡的生產部署,IronXL 的授權模式提供了單一專案、團隊和企業範圍使用的彈性選項——所有這些都包括來源程式碼存取和免版稅再分發權利。 購買授權以解鎖無浮水印的完整功能。

如何應用授權金鑰?

購買後,在調用任何 IronXL 方法之前應用您的授權金鑰:

// Apply license key at application startup
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Then proceed with CSV reading as normal
WorkBook workbook = WorkBook.LoadCSV("data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ",");
WorkSheet worksheet = workbook.DefaultWorkSheet;
Console.WriteLine($"Loaded {worksheet.RowCount} rows from CSV.");

將授權金鑰分配置於應用程式的最早進入點——通常是頂層語句專案中的 Program.cs ——以確保後續的所有呼叫均已獲得完整授權。 有關逐步説明,請參閱 IronXL 授權金鑰指南

如何開始免費試用?

IronXL 在 .NET Core 應用程式中簡化了 CSV 讀寫操作,同時提供靈活性來處理複雜的情境,包括資料分析、報告和自動化任務。 其直觀的 API 結合了 Excel 格式支持和企業功能,使其成為需要經過驗證的 CSV 處理能力且具有執行緒安全及並發存取支持的開發人員的可靠選擇。 該函式庫能夠在格式之間轉換、處理各種分隔符、進行資料清理,並與現有的 .NET 資料結構進行整合,大大減少了開發時間,同時保持程式碼可維護性。

準備開始處理 CSV 文件? 今天下載IronXL 的免費試用,體驗該函式庫如何透過專業級 CSV 剖析功能轉變您的資料處理工作流。 對於生產環境使用,探索包括專業支持、文件和持續更新的授權選項,以用於您的 .NET 項目。

其他進一步閱讀的資源:

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立