跳過到頁腳內容
使用 IRONXL

如何使用 C# CSV 函式庫讀寫文件

在 C# 中處理 CSV 檔案通常不僅僅是簡單的讀取和寫入。 開發人員需要可靠的 CSV 文件處理、流暢的資料匯入/匯出以及與電子表格工作流程的輕鬆整合。 雖然像 CsvHelper 這樣的免費庫涵蓋了基本的 CSV 操作,但當您需要 Excel 工作簿支援、高效能或對行、列和資料類型的一致處理時,它們有時會顯得力不從心。

IronXL透過提供一個能夠無縫處理 CSV 和 Excel 格式的單一 .NET 程式庫來解決這些難題,而無需 Microsoft Office。它提供了強大的 CSV 讀寫功能、自訂類別物件映射功能以及逗號分隔值和 Excel 之間的轉換功能。 所有這些都以高效能、低記憶體的工作流程實現,適用於桌面和 Web 應用程式。

如何開始使用 IronXL?

透過NuGet 套件管理器安裝 IronXL 只需幾秒鐘。 在 Visual Studio 中開啟程式包管理器控制台並執行:

Install-Package IronXL.Excel

安裝完成後,將 IronXL 命名空間新增至您的 C# 檔案:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

IronXL 可在 Windows、Linux 和 macOS 環境下執行,支援 .NET Framework 4.6.2+ 和 .NET Core/5/6/7/8+。 該程式庫無需依賴 Microsoft Office 即可獨立運行,因此非常適合伺服器部署和雲端應用程式。 有關詳細的安裝說明,請造訪IronXL 安裝指南

如何使用 IronXL 讀取 CSV 檔案?

IronXL 支援輕鬆讀取 CSV 文件,整個過程遵循直觀的模式。 該程式庫會自動處理編碼偵測和分隔符號識別等常見挑戰,這些問題是開發人員在解析 CSV 資料時經常遇到的

// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");
// Access the imported worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Read specific cell values
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;
// iterating from row 1 to skip the header row
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}");
}
// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");
// Access the imported worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Read specific cell values
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;
// iterating from row 1 to skip the header row
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}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這段程式碼將 CSV 檔案載入到 WorkBook 物件中,從而提供完整的電子表格功能。 DefaultWorkSheet 屬性可直接存取 CSV 資料。 可以使用熟悉的 Excel 表示法(例如"A2")存取單一儲存格,內建的類型轉換方法(StringValue、DecimalValue、IntValue)可確保正確的資料處理。 for 迴圈示範了行迭代,將每一行視為單元格的集合。 我們使用了一個循環,它會自動跳過第一行,因為它是標題行; 但是,如果您想將標題保留在輸出中,只需使用:

foreach (var row in workSheet.Rows)
{
    Console.WriteLine($"{row.Columns[0].Value}, {row.Columns[1].Value}");
}
foreach (var row in workSheet.Rows)
{
    Console.WriteLine($"{row.Columns[0].Value}, {row.Columns[1].Value}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

對於更複雜的場景,請查閱完整的閱讀教學

輸出

如何使用 C# CSV 庫讀寫檔案:圖 1 - 讀取 CSV 檔案輸出

對於進階場景,開發人員可以透過遍歷每一行並將單元格值指派給物件屬性,將 CSV 行對應到自訂類別物件。 這種方法為在 C# 中處理結構化資料提供了一種簡潔的方式。

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

使用 IronXL 建立 CSV 檔案支援多種方法,從建立新的電子表格到轉換現有資料結構。 這種靈活性使其成為資料匯出場景的理想選擇:

// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");
// Add header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;
// Save as CSV
workBook.SaveAsCsv("inventory.csv");
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");
// Add header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;
// Save as CSV
workBook.SaveAsCsv("inventory.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

本範例從頭開始建立一個新的工作簿,並向其中填入資料。 SaveAsCsv() 方法將工作表匯出為 CSV 格式,自動處理正確的格式和分隔符號。 IronXL 在匯出過程中保留資料類型,確保數字保持數值形式,而不是將所有內容轉換為字串。 SaveAsCsv 方法支援在需要時使用自訂分隔符號。

輸出

如何使用 C# CSV 庫讀寫文件:圖 2 - 使用 IronXL 新建的 CSV 文件

對於現有數據,IronXL 可以直接轉換數據表:

DataTable dataTable = GetDataFromDatabase();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("export");
workSheet.InsertDataTable(dataTable, "A1");
workBook.SaveAsCsv("export.csv");
DataTable dataTable = GetDataFromDatabase();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("export");
workSheet.InsertDataTable(dataTable, "A1");
workBook.SaveAsCsv("export.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronXL 能否在 CSV 與 Excel 格式之間進行轉換?

IronXL 的突出特點是 CSV 和 Excel 格式之間的無縫轉換。 此功能消除了處理不同文件類型時對單獨庫的需求,這是開發人員經常討論的需求:

// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");
// Convert Excel to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");
// Convert Excel to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這些轉換可以保持資料完整性,包括數值類型、日期和公式(如適用)。 將多工作表 Excel 檔案轉換為 CSV 時,IronXL 會為每個工作表建立單獨的 CSV 檔案:

WorkBook multiSheetWorkBook = WorkBook.Load("multi_sheet.xlsx");
multiSheetWorkBook.SaveAsCsv("output.csv");
// Creates: output.Sheet1.csv, output.Sheet2.csv, etc.
WorkBook multiSheetWorkBook = WorkBook.Load("multi_sheet.xlsx");
multiSheetWorkBook.SaveAsCsv("output.csv");
// Creates: output.Sheet1.csv, output.Sheet2.csv, etc.
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

轉換過程能夠優雅地處理複雜的Excel功能。 公式會根據其值進行計算,格式會盡可能保留,資料驗證規則也會在 Excel 格式中維護。 請參閱文件以了解更多關於Excel轉CSV轉換的資訊

如何使用 C# CSV 庫讀寫文件:圖 3 - 多頁 Excel 文件儲存為單獨的 CSV 文件

為了比較這些 CSV 檔案與原始 .xlsx 檔案之間的差異,我們來看看輸出結果。在記事本中開啟的 Customers 檔案與在 Excel 中檢視的 Customers 工作表:

如何使用 C# CSV 庫讀寫檔案:圖 4 - 原始 Excel 格式檔案與轉換後的 CSV 檔案對比

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

為什麼選擇 IronXL 進行 CSV 檔案處理?

在評估 C# CSV 程式庫時,開發人員會考慮易用性、功能完整性和長期支援等因素。 IronXL全面滿足了這些需求:

如何使用 C# CSV 庫讀寫檔案:圖 5 - IronXL 與僅支援 CSV 的庫的比較表

除了基本的 CSV 操作外,IronXL 還提供企業級功能,例如密碼保護的檔案處理、儲存格樣式保留和公式計算。 統一的 API 意味著開發人員只需學習一個函式庫即可滿足所有電子表格需求,從而降低處理多種文件格式的專案的複雜性。

跨平台相容性確保在開發和生產環境中行為的一致性。 該程式庫的託管程式碼方法消除了特定於平台的依賴項,簡化了部署和維護。 有關詳細功能比較,請參閱IronXL 功能頁面

結論

IronXL 簡化了讀取和寫入 CSV 檔案的整個工作流程,實現了 Excel 和 CSV 之間的轉換,並處理了高階電子表格功能。 它不僅僅是另一個 CSV 庫,而是一套完整的 .NET 開發人員的電子表格工具集。

IronXL 透過結合簡潔的 API、全面的支援和企業級測試,幫助開發人員避免浪費時間去追蹤錯誤、透過暫時拉取請求進行修補或依賴分散的開源軟體包。

如果您的專案需要可靠、高效能的電子表格功能,IronXL 是您的理想之選。它能讓您輕鬆管理文件、處理資料並建立可擴展的解決方案,同時兼具專業級的穩定性和易用性。

準備好簡化您的 CSV 和 Excel 處理流程了嗎? 首先可以免費試用,價格從 $liteLicense 起,其中包括專業支援和持續更新。

常見問題解答

什麼是 IronXL,它對 C# 中的 CSV 檔案有什麼幫助?

IronXL 是一個功能強大的 C# 函式庫,可讓開發人員無縫讀取、寫入和轉換 CSV 檔案。它提供對 Excel 工作簿的延伸支援,確保高效能及一致的行、列及資料類型處理。

為何要使用 IronXL 而非 CsvHelper 等免費程式庫?

CsvHelper 非常適合基本的 CSV 作業,而 IronXL.Excel 則以 Excel 工作簿支援、增強效能和強大的資料類型處理等功能為優勢,使其適合更複雜的試算表工作流程。

IronXL 可以同時處理 CSV 和 Excel 格式嗎?

是的,IronXL.Excel 可有效處理 CSV 和 Excel 兩種格式,讓您輕鬆在兩者之間進行轉換。

IronXL 支援高效能資料處理嗎?

IronXL 專為高效能而打造,可確保順暢的資料匯入與匯出流程,並提供最佳的速度與效率。

是否可以將 IronXL 與現有的試算表工作流程整合?

當然,IronXL.Excel 可與現有的試算表工作流程無縫整合,增強跨 CSV 和 Excel 格式管理資料的能力。

IronXL 為什麼適合複雜的 CSV 檔案作業?

IronXL 提供強大的功能,例如一致處理行、列和資料類型,使其成為需要基本處理以外的複雜 CSV 檔案作業的理想選擇。

我可以使用 IronXL 將 CSV 檔案轉換為 Excel 嗎?

是的,IronXL.Excel 的主要功能之一是能夠將 CSV 檔案轉換為 Excel 格式,反之亦然,從而簡化資料管理流程。

IronXL 如何確保 CSV 檔案處理的可靠性?

IronXL.Excel 透過其先進的功能確保可靠的 CSV 檔案處理,這些功能包括支援複雜的資料類型以及與 Excel 功能整合。

使用 IronXL 進行資料匯入/匯出有哪些好處?

IronXL 提供流暢的資料匯入/匯出流程,節省開發人員的時間與精力,同時確保不同格式資料的完整性與正確性。

對於剛開始使用 C# 進行 CSV 操作的開發人員而言,IronXL 是否容易使用?

是的,IronXL 的設計具有人性化的功能和簡單的程式碼範例,讓剛開始使用 C# 進行 CSV 操作的開發人員也能輕鬆上手。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。