IRONSOFTWAREHOME
USING IRONXL

C# CSV 庫:使用 IronXL 的完整教學

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

在C#中使用CSV檔案需要一個能夠處理不只是簡單行解析的程式庫。 您需要可靠的編碼檢測,正確的分隔符處理,強型別化,理想情況下,能在CSV和Excel之間移動資料,且不需要維護兩個單獨的依賴。 IronXL在一個.NET程式庫中提供了所有這些,不需要Microsoft Office,無需COM互通,也不需要脆弱的替代方案。 無論您是在伺服器上處理平面資料檔案、建立資料管道或提供使用者電子表格下載,IronXL為每個格式提供一致的API。

如何設定C#電子表格程式庫?

透過NuGet安裝IronXL只需不到一分鐘。 在Visual Studio中打開封裝管理器控制台並運行以下命令,或從任何終端使用.NET CLI:

PM > Install-Package IronXL.Excel

安裝封裝後,將命名空間新增到任何您想要處理電子表格資料的檔案中:

using IronXL;

IronXL面向.NET Framework 4.6.2+及所有現代.NET版本(Core、5、6、7、8、9和10)。 它可以在Windows、Linux和macOS上運行,適用於桌面工具和容器化伺服器的工作負載。 存取IronXL安裝指南以獲得涵蓋封裝來源和授權啟用的逐步指導。

如何在C#中讀取CSV檔案?

使用IronXL讀取CSV檔案遵循與載入任何電子表格相同的模式。 調用WorkBook.Load與檔案路徑,IronXL從副檔名推斷格式 -- 不需要額外配置:

// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;

// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}

WorkBook物件展示完整的電子表格模型。 您可以使用熟悉的Excel符號如"A2"存取單元格,並且內建的轉換屬性 -- DateTimeValue -- 處理型別強制,因此您不必手動解析字串。

有哪些單元格地址選項可用?

除了單一單元格存取,IronXL支持範圍符號和行/列迭代。 您可以使用類似workSheet["A2:C10"]的範圍表達式對一個矩形區塊的單元格進行存取,並作為一個平面集合迭代它。 這在您想要驗證或轉換已知資料區塊而不寫入巢狀迴圈時非常有用:

// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}

對於動態行數,workSheet.Rows集合自動反映載入的資料,因此您不需要硬編碼行數。 查看C#讀取CSV教程以獲得更多模式,包括標題檢測和多編碼檔案。

如何將CSV行映射到自定義物件?

一個常見的需求是將表格CSV資料轉換為型別集合。 您可以迭代行並將每一行專案映射到一個普通的C#類中:

public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);

WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var records = new List<SalesRecord>();

// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    records.Add(new SalesRecord(
        Customer: row.Columns[0].StringValue,
        Amount: row.Columns[1].DecimalValue,
        OrderDate: row.Columns[2].DateTimeValue
    ));
}

這種方法乾淨地將解析邏輯與業務邏輯分隔開,並通過應用程式的其餘部分使每條記錄具有強型別。

如何使用C# CSV Library讀取和寫入文件:圖1 - 讀取CSV檔案輸出

如何在C#中寫入CSV檔案?

從頭開始建立CSV檔案涉及三個步驟:建立SaveAsCsv。 這個過程鏡像了您將如何建立任何電子表格,這使得API無論輸出格式如何都保持一致:

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");

// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;

workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;

// Export to CSV
workBook.SaveAsCsv("inventory.csv");

SaveAsCsv處理分隔符位置、包含逗號的字段的引號以及新行標準化。 您不需要手動管理這些。 IronXL在導出時保留數字型別,以便下游工具如Excel或pandas以數字而非引號字串讀取。

如何將DataTable導出為CSV?

許多應用程式將資料從資料庫檢索到DataTable中。 IronXL可以使用一個調用將整個DataTable插入到工作表中,使得批量導出簡單明了:

DataTable dataTable = GetProductsFromDatabase();

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("products");

workSheet.InsertDataTable(dataTable, "A1");

workBook.SaveAsCsv("products.csv");

DataTable架構中寫入列標題並從您提供的地址開始填充所有行。 對於較大的資料集,這遠比手動逐行迴圈更高效。 查看導出到CSV文件,以獲得包括自定義分隔符和編碼設置的選項。

如何使用C# CSV Library讀取和寫入文件:圖2 - 使用IronXL新建立的CSV文件

如何在C#中在CSV和Excel之間進行轉換?

IronXL提供的最有價值的功能之一是CSV和Excel格式之間的雙向轉換。 API是對稱的 -- Load讀取任何支持的格式,Save方法家族寫入至您的目標格式:

// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");

// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");

這些轉換維持資料的完整性。 數字值保持數字,日期字段保留其型別,公式結果在寫入前被評估為它們的計算值。 當您將多工作表Excel文件轉換為CSV時,IronXL會自動為每個工作表建立一個單獨的CSV文件:

WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");

// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");

這種行為特別對於報告管道很有用,其中下游消費者期望每個文件都有一個主題。CSV寫入教程涵蓋了額外的選項,例如指定分隔符字元和控制導出中包含的工作表。

如何使用C# CSV Library讀取和寫入文件:圖3 - 多頁Excel文件保存為單獨的CSV文件

如何使用C# CSV Library讀取和寫入文件:圖4 - 原Excel格式文件與轉換的CSV文件

第一步:
arrow pointer

為何僅支持CSV的程式庫不足以滿足實際專案需求?

許多C#開發者從CsvHelper或從Microsoft.VisualBasicTextFieldParser開始。 這兩個工具都能夠處理僅支持CSV的工作流程。 當需求擴大時,您會發現差距:利益相關者要求Excel下載而不是CSV,財務需要保留公式,或安全政策要求密碼保護的檔案。 在那時候,僅支持CSV的程式庫迫使您新增第二個依賴並維護兩個單獨的整合路徑。 一個統一的電子表格程式庫從一開始就消除了這種分裂。

IronXL與僅支持CSV程式庫的功能對比
功能IronXLCsvHelperTextFieldParser
讀取CSV檔案
寫入CSV檔案
讀取/寫入XLSX
公式計算
單元格樣式和格式化
密碼保護的檔案
需要Office依賴
跨平台(.NET 10)有限的

統一程式庫提供哪些額外的電子表格功能?

除了格式轉換,一個同時處理CSV和Excel的程式庫,隨著專案的成長,為您提供有用的電子表格操作。 特別是有了IronXL,您可以得到:

  • 公式計算 -- 您可以將像=SUM(B2:B10)的公式寫入單元格,並讀回計算結果而無需Excel。
  • 單元格和範圍樣式 -- 通過IronXL樣式API應用字型權重、背景顏色、數字格式和邊框。
  • 密碼保護 -- 使用WorkBook.Load("secure.xlsx", "password")打開加密工作簿並保存新檔案時進行加密。
  • 命名範圍 -- 定義和引用命名區域,就像在Excel中那樣,這簡化了公式編寫和資料驗證。
  • 大文件支持 -- IronXL在托管程式碼中處理資料,而不需一次將整個文件載入到記憶體中,這使得記憶體使用在即使有成千上萬行的文件中也可預測。

IronXL功能頁有支持的操作的完整列表。

IronXL如何處理跨平台部署?

針對電子表格程式庫的一個持續挑戰是平台特定行為。 依賴COM互通的程式庫只能在Windows上運行,而依賴於Office的程式庫需要安裝Office。 IronXL是完全托管的程式碼,無本地依賴,因此同一個二進制文件可以在Linux容器、macOS開發機和Windows伺服器上運行而無需改變。 這使得它能輕鬆部署到Azure、AWS、Docker或任何.NET 10目標。

對於使用DapperEntity Framework Core等工具構建資料管道的開發者而言,IronXL自然地作為序列化層運作 -- 讀取CSV輸入,使用您的ORM處理,輸出結果為XLSX或CSV。IronXL授權頁解釋了可用于商業用途的授權層次。

如何使用C# CSV Library讀取和寫入檔案:圖5 - IronXL與僅支持CSV的程式庫對比表

您的下一步是什麼?

IronXL為您在任何.NET 10應用程式中提供單一、一致的API用於讀取、寫入和轉換CSV和Excel文件。 主要收益是顯而易見的:無需Office依賴,跨平台支持,強型別化單元格值,從僅支援CSV的專案到完整電子表格功能的直接過渡,每當需求變更時。

當您準備深入時,從最相關於您當前專案的主題開始。 如果您主要處理CSV導入管道,上述的讀取和映射模式處理了大多數現實世界場景。 如果您的輸出要求多樣化 -- 有時為下游腳本準備的CSV,有時為終端使用者準備的XLSX -- 格式轉換部分展示了怎樣用一個程式碼庫服務於兩者。

對於構建報告系統或從資料庫導出結果的團隊,InsertDataTable方法擴展良好,避免了逐行單元格指派的性能開銷。 將其與單元格樣式相結合,以生成使用者可以直接在Excel中打開而無需重新格式化的報告。

要進一步前進,遵循以下步驟:

  1. 通過NuGet使用dotnet add package IronXL安裝程式庫
  2. IronXL入門指南跟隨快速入門以載入您的第一個CSV文件。
  3. 當您在同一個專案中需要這兩種格式時,透過CSV到Excel教程探索格式轉換
  4. IronXL物件參考查看可用於高級單元格操作、公式支援和樣式的API參考
  5. IronXL試用授權頁開始免費試用 -- 不需要信用卡,包括技術支援。

如果您正在評估與其他Iron Software工具一起的選擇,Iron Software產品套件涵蓋PDF生成IronPDF,條碼讀取,OCR等 -- 全部共用相同的授權模式和支援渠道。

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天試用金鑰
無需信用卡或帳戶建立