跳過到頁腳內容
使用 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 可以直接轉換 DataTables:

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 文件在記事本中打開 vs. Excel 查看 Customers 表:

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

立即開始使用 IronXL。
green arrow pointer

為何選擇 IronXL 來處理 CSV 文件?

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

如何使用 C# CSV 庫讀寫文件:圖 5 - IronXL 與僅支持 CSV 的庫的比較表

除了基本的 CSV 操作,IronXL 還提供企業功能,例如密碼保護的文件處理、單元格樣式的保留和公式計算。 統一的 API 意味著開發人員學習一個庫來滿足所有電子表格需求,降低了處理多種文件格式項目的複雜性。

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

結論

IronXL 簡化了 CSV 文件的整個讀寫工作流程、Excel 和 CSV 之間的轉換以及高級電子表格功能的處理。 這不僅僅是另一個 CSV 庫,而是一套完整的 .NET 開發人員電子表格工具。

通過整潔的 API、全面的支持和企業級測試,IronXL 幫助開發人員避免浪費時間追尋漏洞、打補丁或依賴於分散的開源包。

如果您的項目需要可靠的高性能電子表格功能,IronXL 是正確的選擇。它使您能夠管理文件、處理數據,並構建可擴展的解決方案,所有這些都具有專業的穩定性和易用性。

準備好簡化您的 CSV 和 Excel 處理了嗎? 開始免費試用,$liteLicense起,並包括專業支持和持續更新。

常見問題解答

什麼是 IronXL,它如何幫助 C# 中的 CSV 文件?

IronXL 是一個強大的 C# 庫,允許開發人員無縫地讀取、寫入和轉換 CSV 文件。它提供了對 Excel 工作簿的擴展支持,保證高效能和行、列及數據類型的一致處理。

為什麼我要使用 IronXL 而不是像 CsvHelper 這樣的免費庫?

雖然 CsvHelper 適合基本的 CSV 操作,但 IronXL 在 Excel 工作簿支持、增強性能和健壯的數據類型處理方面表現出色,使其適合更複雜的電子表格工作流程。

IronXL 能夠處理 CSV 和 Excel 格式嗎?

是的,IronXL 被設計用於高效處理 CSV 和 Excel 格式,允許您輕鬆地在兩者之間轉換。

IronXL 支持高效能數據處理嗎?

IronXL 為高效能而構建,確保數據導入和導出過程順暢,速度和效率最佳化。

是否可以將 IronXL 與現有的電子表格工作流程集成?

絕對可以,IronXL 無縫集成到現有的電子表格工作流程中,增強跨 CSV 和 Excel 格式的數據管理能力。

IronXL 何以適合複雜的 CSV 文件操作?

IronXL 提供了強大的功能,如行、列和數據類型的一致處理,使其適合需要超過基本處理的複雜 CSV 文件操作。

我能否使用 IronXL 將 CSV 文件轉換為 Excel?

是的,IronXL 的一個關鍵功能是可以將 CSV 文件轉換為 Excel 格式及反之,以簡化數據管理過程。

IronXL 如何確保可靠的 CSV 文件處理?

IronXL 通過其高級功能確保可靠的 CSV 文件處理,其中包括對複雜數據類型的支持以及與 Excel 功能的集成。

使用 IronXL 進行數據導入/導出的好處是什麼?

IronXL 提供順暢的數據導入/導出過程,節省開發人員的時間和精力,同時保證各格式間的數據完整性和準確性。

IronXL 對於不熟悉 C# 中 CSV 操作的開發人員來說是否容易使用?

是的,IronXL 具備用戶友好的功能和簡單的代碼示例,從而讓不熟悉 C# 中 CSV 操作的開發人員也能輕鬆使用。

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