跳過到頁腳內容
使用 IRONXL

C# 寫入 CSV:使用 IronXL 改善您的資料匯出流程

在 C# 中建立 CSV(逗號分隔值)檔案是報表系統、資料交換和整合的核心任務。 然而,許多開發者已經厭倦了與 StreamWriter、轉義字元和格式錯誤作鬥爭。 IronXL 提供了一種更簡潔、更快捷的方式,使用 C 語言寫入 CSV 文件,而無需處理分隔符號問題或樣板程式碼。 在本指南中,您將看到 IronXL 如何簡化從 Excel 檔案、DataTables 和自訂資料建立 CSV 檔案的流程,所有這些都具有生產就緒的可靠性。

為什麼傳統的 CSV 寫入方式不足?

使用 StreamWriter 或 StringBuilder 的傳統方法需要手動處理分隔符號、特殊字元和編碼問題。 舊方法通常涉及var writer = new StreamWriter(...)var csv = new StringBuilder() ,迫使開發人員編寫大量的樣板程式碼。 根據Stack Overflow 上的討論,開發人員必須編寫大量的樣板程式碼來管理資料中的逗號、正確轉義引號和處理換行符,同時還要確保對大型資料集進行適當的記憶體管理。 當遇到意外字元或編碼不匹配時,這些手動方法通常會導致檔案損壞。

IronXL 透過提供強大的 API 來消除這些複雜性,該 API 可以智慧地處理 CSV 生成。 該程式庫可自動管理特殊字符,支援除 CSV 以外的多種 Excel 格式來儲存數據,並且無需安裝 Microsoft Excel 或依賴 Interop

安裝只需幾秒鐘,只需開啟 Visual Studio 並使用 NuGet 套件管理器執行以下命令:

Install-Package IronXL.Excel

立即開始免費試用,體驗輕鬆便利的 CSV 生成功能。

如何將Excel檔案轉換為CSV格式?

建立 CSV 檔案最直接的方法是轉換現有的 Excel 工作簿。 IronXL 的 WorkBook.Load 方法只需三行程式碼即可讓此過程變得非常簡單。 我們可以透過建立一個新專案並執行以下命令來測試這一點:

using IronXL;
// Load an existing Excel file (XLSX, XLS, or even CSV)
WorkBook workBook = WorkBook.Load("SalesReport.xlsx");
// Convert and save as CSV - automatically handles the active worksheet
workBook.SaveAsCsv("SalesReport.csv");
using IronXL;
// Load an existing Excel file (XLSX, XLS, or even CSV)
WorkBook workBook = WorkBook.Load("SalesReport.xlsx");
// Convert and save as CSV - automatically handles the active worksheet
workBook.SaveAsCsv("SalesReport.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Load 方法接受各種 Excel 格式,包括 XLSX、XLS、XLSM,甚至可以重新格式化現有的 CSV 檔案。 SaveAsCsv 方法能夠智慧地匯出目前工作表,同時保留資料類型並無縫處理特殊字元。 使用多工作表工作簿時,IronXL 會自動為每個工作表建立單獨的 CSV 文件,並在文件末尾附加工作表名稱以保持組織性。

如何在 C# 中寫入 CSV 檔案:圖 1 - 輸入文件

對於特定的工作表控件,開發人員可以針對單一工作表進行控制:

// Export a specific worksheet to CSV
WorkSheet worksheet = workBook.WorkSheets[0];
worksheet.SaveAs("Q4_Report.csv");
// Export a specific worksheet to CSV
WorkSheet worksheet = workBook.WorkSheets[0];
worksheet.SaveAs("Q4_Report.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這種有針對性的方法在處理包含多個資料集的複雜工作簿時非常有價值,它允許選擇性導出,而無需手動提取資料。 請參閱文件以了解更多關於工作表管理的資訊。

如何將資料表匯出為 CSV 檔案?

企業應用程式經常需要處理來自資料庫或 API 的 DataTable 物件。傳統上,將這些資料寫入 CSV 檔案需要遍歷行和列,並手動建立分隔符號字串。 IronXL 簡化了這個常見場景,微軟官方論壇中對此有詳細記錄:

using IronXL;
using System.Data;
class Program 
{
    // Example method to provide DataTable
    private static DataTable GetCustomerData()
    {
        DataTable table = new DataTable();
        table.Columns.Add("CustomerID", typeof(int));
        table.Columns.Add("Name", typeof(string));
        table.Columns.Add("Email", typeof(string));
        table.Rows.Add(1, "John Doe", "john@example.com");
        table.Rows.Add(2, "Jane Smith", "jane@example.com");
        return table;
    }
    public static void Main()
    {
        // Get your data
        DataTable dataTable = GetCustomerData();
        // Create a new workbook
        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        DataSet dataSet = new DataSet();
        dataSet.Tables.Add(dataTable);
        WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
        // Export to CSV
        workBook.SaveAsCsv("CustomerExport.csv");
    }
}
using IronXL;
using System.Data;
class Program 
{
    // Example method to provide DataTable
    private static DataTable GetCustomerData()
    {
        DataTable table = new DataTable();
        table.Columns.Add("CustomerID", typeof(int));
        table.Columns.Add("Name", typeof(string));
        table.Columns.Add("Email", typeof(string));
        table.Rows.Add(1, "John Doe", "john@example.com");
        table.Rows.Add(2, "Jane Smith", "jane@example.com");
        return table;
    }
    public static void Main()
    {
        // Get your data
        DataTable dataTable = GetCustomerData();
        // Create a new workbook
        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        DataSet dataSet = new DataSet();
        dataSet.Tables.Add(dataTable);
        WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
        // Export to CSV
        workBook.SaveAsCsv("CustomerExport.csv");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這段程式碼示範如何在簡單的控制台應用程式中使用 IronXLDataTable匯出到 CSV 檔案。 它首先建立一個包含客戶資料的範例DataTable ,並將其新增至資料集中。 LoadWorkSheetsFromDataSet方法用於根據DataTable在工作簿中自動產生工作表,而不是手動將值插入到工作表中。 將所有資料載入到工作簿後,使用SaveAsCsv("CustomerExport.csv")將整個工作表匯出為 CSV 檔案。

輸出

如何在 C# 中寫入 CSV 檔案:圖 2 - DataTable 到 CSV 範例的輸出文件

如何使用 C# 從零開始編寫 CSV 檔案?

有時,應用程式需要以程式設計方式產生新的 CSV 文件,而無需依賴現有的資料來源。 IronXL 擅長從零開始建立電子表格

using IronXL;
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Inventory");
// Add headers
workSheet["A1"].Value = "Product ID";
workSheet["B1"].Value = "Product Name";
workSheet["C1"].Value = "Quantity";
workSheet["D1"].Value = "Price";
// Add data rows - supports various data types
workSheet["A2"].Value = 1001;
workSheet["B2"].Value = "Wireless Mouse";
workSheet["C2"].Value = 150;
workSheet["D2"].Value = 29.99;
workSheet["A3"].Value = 1002;
workSheet["B3"].Value = "Mechanical Keyboard";
workSheet["C3"].Value = 75;
workSheet["D3"].Value = 89.99;
// Apply formulas before export
workSheet["E1"].Value = "Total Value";
workSheet["E2"].Formula = "=C2*D2";
// Save as CSV - formulas calculate before export
workBook.SaveAsCsv("Inventory.csv");
using IronXL;
// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Inventory");
// Add headers
workSheet["A1"].Value = "Product ID";
workSheet["B1"].Value = "Product Name";
workSheet["C1"].Value = "Quantity";
workSheet["D1"].Value = "Price";
// Add data rows - supports various data types
workSheet["A2"].Value = 1001;
workSheet["B2"].Value = "Wireless Mouse";
workSheet["C2"].Value = 150;
workSheet["D2"].Value = 29.99;
workSheet["A3"].Value = 1002;
workSheet["B3"].Value = "Mechanical Keyboard";
workSheet["C3"].Value = 75;
workSheet["D3"].Value = 89.99;
// Apply formulas before export
workSheet["E1"].Value = "Total Value";
workSheet["E2"].Formula = "=C2*D2";
// Save as CSV - formulas calculate before export
workBook.SaveAsCsv("Inventory.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

儲存格引用系統與 Excel 中常見的 A1 表示法類似,使開發人員能夠直觀地編寫程式碼。 IronXL 支援單獨設定值,也可以透過範圍進行批量操作。 當存在公式時,該庫會在匯出到 CSV 之前計算結果,從而確保資料的準確表示。 這種程序化方法能夠根據運行時條件動態產生報表。

輸出

如何在 C# 中寫入 CSV 檔案:圖 3 - 從頭建立的 CSV 文件

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

如何處理常見的 CSV 問題?

處理分隔符號和錯誤處理是 CSV 生成過程中常見的挑戰。 IronXL 會自動處理這些問題,但也會根據需求提供控制選項,正如開發者論壇中所討論的:

// Robust error handling
try
{
    WorkBook workBook = WorkBook.Load("Data.xlsx");
    // Specify delimiter options
    workBook.SaveAsCsv("Output.csv", delimiter: ",");
}
catch (Exception ex)
{
    Console.WriteLine($"Export failed: {ex.Message}");
    // Log error or implement retry logic
}
// Robust error handling
try
{
    WorkBook workBook = WorkBook.Load("Data.xlsx");
    // Specify delimiter options
    workBook.SaveAsCsv("Output.csv", delimiter: ",");
}
catch (Exception ex)
{
    Console.WriteLine($"Export failed: {ex.Message}");
    // Log error or implement retry logic
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronXL 會自動轉義資料欄位中的特殊字符,例如逗號和引號,因此無需手動預處理。 此程式庫會針對常見問題(例如檔案存取問題或無效資料格式)拋出描述性異常,從而在生產環境中實現適當的錯誤處理。 透過將程式碼包裹在 try catch 區塊中,我們可以輕鬆處理拋出的任何異常。 如需更多故障排除指導,請參閱完整文件

如何在 C# 中寫入 CSV 文件:圖 4 - 成功將 Excel 文件轉換為 CSV 文件,同時應對常見挑戰

結論

IronXL 將 C# CSV 寫入從手動、容易出錯的流程轉變為可靠且簡化的操作。 該庫能夠處理從DataTable導出到特殊字元轉義等複雜場景,而這些場景通常需要大量的自訂程式碼。 無論是轉換現有的 Excel 文件還是從頭開始建立 CSV 文檔,IronXL 直覺的API都能縮短開發時間,同時確保專業的結果。

開發者可以透過免費試用版探索 IronXL 的全部功能,它提供全面的 CSV 處理功能以及更廣泛的 Excel 功能。 準備好簡化您的 CSV 操作了嗎? 立即革新您的資料匯出流程。

常見問題解答

使用 IronXL 以 C# 撰寫 CSV 檔案有何優點?

IronXL 透過消除分隔符處理和模板程式碼的常見問題,提供更乾淨、更快速的 C# 撰寫 CSV 檔案的方法。它簡化了從 Excel 檔案、DataTables 和自訂資料建立 CSV 的過程,並提供生產就緒的可靠性。

IronXL 如何處理 CSV 檔案中的特殊字符?

IronXL 會自動管理特殊字符和轉義序列,確保您的 CSV 檔案格式正確,而無需額外的編碼工作。

IronXL 能將 Excel 試算表轉換為 CSV 檔案嗎?

是的,IronXL.Excel 可以輕鬆地將 Excel 試算表轉換為 CSV 檔案,實現無縫資料交換和報告功能。

是否可以使用 IronXL 將 DataTables 匯出為 CSV?

IronXL 支援將 DataTables 匯出成 CSV 格式,簡化開發人員的資料交換與整合流程。

是什麼讓 IronXL 成為在生產環境中建立 CSV 的可靠選擇?

IronXL 可簡化 CSV 檔案的建立,並處理 CSV 特有的難題,確保輸出一致且無錯誤,從而提供生產就緒的可靠性。

IronXL 是否需要複雜的 CSV 檔案建立設定?

不,設定 IronXL 以建立 CSV 檔案是很直接的,讓開發人員可以快速將其功能整合到他們的應用程式中。

IronXL 如何改善處理 CSV 檔案的開發流程?

IronXL 提供強大的解決方案,可減少 CSV 特定邏輯的手動編碼需求,例如分隔符處理和格式化,從而改善開發流程。

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