使用 IRONXL 使用 IronXL 將 C# 儲存到 CSV 喬迪·巴迪亞 更新:1月 5, 2026 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 分享 分享到 X(Twitter) 在領英上分享 複製連結 電子郵件文章 CSV 檔案 - 以純文字格式儲存的逗號分隔值 - 仍是應用程式、資料庫和報表系統之間進行資料交換的最普遍格式之一。 無論是匯出使用者清單、產生財務報告,或是準備資料匯入分析平台,使用 C# 程式化建立新 CSV 檔案的能力對於現代 .NET 開發而言都是不可或缺的。 開發人員通常使用簡單的 StringBuilder 或 StreamWriter 的 var line 方法開始 CSV 生成,但隨著資料複雜性的增加,這些手動方法很快就會變得容易出錯。 有些開發人員會求助 CSV Helper 函式庫來進行基本的讀/寫操作,但相較於 IronXL 等試算表先行的方法,這些工具仍需要手動對應和行層級處理。 本指南示範如何將資料寫入 CSV 檔案、將現有的 Excel 工作簿轉換為 CSV 格式,以及使用 IronXL.Excel 將物件匯出為逗號分隔值。 此功能強大的 .NET 函式庫可簡化試算表的操作,無須安裝 Microsoft Excel。 IronXL 可在 Windows、macOS、Linux 以及 Docker 和 Azure 等容器化環境中無縫運作,是雲原生應用程式和微服務架構的理想選擇。 逗號分隔值簡介 逗號分隔值 (CSV) 檔案是最廣泛使用的格式之一,可用於儲存表格資料並在不同應用程式之間交換。 以最簡單的形式來說,CSV 檔案是一種純文字檔案,每一行都包含一系列以逗號分隔的值。 這種直接的結構使得 CSV 資料很容易在各種軟體系統中產生、讀取和處理。 CSV 格式既輕量又人性化,因此是匯出報告、在資料庫之間傳輸資料,以及與分析工具整合的熱門選擇。 瞭解 CSV 格式 CSV 格式的設計是為了簡化:CSV 檔案中的每一行代表單一記錄,而該行中的每個值則以逗號分隔。 檔案的第一行通常作為標頭,列出每一列的名稱。 接下來的每一行都包含實際資料,每個值對應標頭中的一列。 此結構可讓 CSV 檔案以一種既易於閱讀又易於解析的格式來表示複雜的資料表。 如何在我的專案中安裝 IronXL? 透過微軟的 .NET 套件管理器 NuGet 套件,將 IronXL 加入新專案只需要幾秒鐘的時間。 開啟 Visual Studio,然後存取 NuGet Package Manager Console 並執行下列指令: ```shell :ProductInstall ```  或者,在"解決方案總管"中的專案上按滑鼠右鍵,選擇"管理 NuGet 套件",在"瀏覽"標籤中搜尋"IronXL",然後按一下"安裝"。 IronXL 支援 [.NET Framework 4.6.2+、.NET Core、.NET 5/6/7/8](/csharp/excel/docs/),可在任何平台上執行,無外部依賴性或 COM 互操作要求。 安裝完成後,請使用 `using` 語句將 IronXL 命名空間新增至您的程式碼檔案: ```cs using IronXL; ``` 此單一命名空間可存取建立試算表和 CSV 匯出作業所需的所有類別。 與依賴 `StreamWriter` 類或 `StringBuilder` 來手動編寫 CSV 檔案的方法不同,IronXL 會自動處理正確 CSV 格式化的所有複雜性。 如何從零開始建立新的 CSV 檔案? 以程式化方式建立新的 CSV 檔案包含三個簡單直接的步驟:建立工作簿、將資料填入工作簿,以及將其儲存為 CSV 格式。 IronXL.Excel 直觀的 API 反映了大家熟悉的 Excel 物件模型,讓開發人員可以輕鬆寫出在控制台應用程式或任何 .NET 專案類型中使用試算表概念的程式碼。 考慮一個您需要將員工物件清單匯出至 CSV 的情境。以下是一個完整的範例,展示如何寫入 CSV 資料: ```cs using IronXL; class Program { public static void Main(string[] args) { // Create a new workbook and worksheet WorkBook workBook = WorkBook.Create(); WorkSheet sheet = workBook.CreateWorkSheet("Employees"); // Add header row with column names sheet["A1"].Value = "EmployeeID"; sheet["B1"].Value = "Name"; sheet["C1"].Value = "Department"; sheet["D1"].Value = "Salary"; // Add employee data rows sheet["A2"].Value = 1001; sheet["B2"].Value = "Sarah Johnson"; sheet["C2"].Value = "Engineering"; sheet["D2"].Value = 85000; sheet["A3"].Value = 1002; sheet["B3"].Value = "Michael Chen"; sheet["C3"].Value = "Marketing"; sheet["D3"].Value = 72000; sheet["A4"].Value = 1003; sheet["B4"].Value = "Emily Rodriguez"; sheet["C4"].Value = "Finance"; sheet["D4"].Value = 91000; // Save as CSV file - output goes to the specified path workBook.SaveAsCsv("employees.csv", ","); } } ``` `WorkBook.Create()`方法完全在記憶體中初始化新的試算表,在最後的儲存操作之前不需要臨時檔案或磁碟 I/O。 `CreateWorkSheet()`方法會在工作簿中加入一個命名的工作表 - 這個名稱在稍後匯出多工作表的工作簿至 CSV 時會變得相關。 ### 輸出  單元格引用(如 `sheet["A1"]` )可直接存取可指定值的特定單元格。 IronXL 接受各種資料類型,包括字串、整數、小數、日期和布林值,並自動處理每種類型的適當格式。 對於更複雜的資料輸入情境,請探索使用 Excel 範圍和大量操作。 [SaveAsCsv()](/csharp/excel/how-to/csharp-write-to-csv-file/) 方法將工作表 CSV 內容匯出至檔案。第一個參數指定輸出檔案名稱和路徑,第二個參數定義分隔符。 IronXL 會自動處理適當的格式,包括轉換可能會破壞 CSV 解析的特殊字符,並在整個匯出過程中維持資料完整性。 如何將物件清單匯出至 CSV? 在處理強類型物件時,您可以使用 `foreach` 循環來遍歷一個新的清單,並將每個項目寫入工作表。 以下是一個範例,使用具有公共字串屬性的 Student 類別: ```cs using IronXL; // Define the Student class with public string properties public class Student { public string FirstName { get; set; } public string LastName { get; set; } public string Email { get; set; } } // In your program class or method var students = new List { new Student { FirstName = "John", LastName = "Smith", Email = "john@example.com" }, new Student { FirstName = "Jane", LastName = "Doe", Email = "jane@example.com" } }; WorkBook workBook = WorkBook.Create(); WorkSheet sheet = workBook.DefaultWorkSheet; // Add header row sheet["A1"].Value = "FirstName"; sheet["B1"].Value = "LastName"; sheet["C1"].Value = "Email"; // Use foreach to iterate through the list and write each item int row = 2; foreach (var item in students) { sheet[$"A{row}"].Value = item.FirstName; sheet[$"B{row}"].Value = item.LastName; sheet[$"C{row}"].Value = item.Email; row++; } workBook.SaveAsCsv("students.csv", ","); ``` 此模式示範如何透過迭代每一項目並將其屬性對應到特定欄位,將清單物件匯出為 CSV 資料。 `foreach` 環路會處理集合中的每個學生,並透過字串插值動態建構單元格引用。 如何將現有的 Excel 檔案轉換為 CSV? 將 Excel 試算表轉換為 CSV 格式,是與傳統系統整合、為資料庫匯入準備資料,或從人工製作的報表產生機器可讀輸出時的常見需求。 IronXL 以最少的程式碼處理此轉換,同時保留資料的正確性。 檔案存在於磁碟上,可直接載入。 ```cs using IronXL; // Load an existing Excel file from the specified location WorkBook workBook = WorkBook.Load("Monthly_Report_20251012.xlsx"); // Convert and save as CSV format workBook.SaveAsCsv("Monthly_Report_20251012.csv"); ``` `Load()` 方法可開啟各種格式的 Excel 檔案,包括 XLSX、XLS、XLSM,甚至是現有的 CSV 或 TSV 檔案。 這種靈活性意味著開發人員可以建立標準化的匯出管道,不論輸入檔案的原始格式為何,都能接受。 系統內部處理檔案作業。 ### 輸入  ### 輸出  在轉換過程中,IronXL 的突出功能之一是自動公式評估。 儲存為 CSV 時,IronXL 會計算試算表中存在的任何公式,並匯出結果值而非公式文字。 例如,包含 `=SUM(A1:A10)` 的儲存格將會匯出為計算出的總數,以確保 CSV 檔案包含下游系統可立即使用的可行資料。 多工作表匯出如何運作? 在處理包含多個工作表的 Excel 工作簿時,IronXL.Excel 會自動為每個工作表建立獨立的 CSV 檔案。 此功能對於財務報告、區域銷售資料,或每個部門或類別在單一主工作簿中各自佔用工作表的任何情況,尤其有價值。 ```cs using IronXL; // Load a multi-sheet workbook (e.g., annual sales by region) WorkBook workBook = WorkBook.Load("annual_sales.xlsx"); // Export all sheets to CSV - creates separate files for each workBook.SaveAsCsv("sales_export.csv"); // Output: sales_export.North.csv, sales_export.South.csv, sales_export.East.csv, etc. // Or export a specific worksheet WorkSheet northRegion = workBook.GetWorkSheet("North"); northRegion.SaveAsCsv("north_region_sales.csv"); ``` 命名慣例會將每個工作表名稱附加到基本檔案名稱,讓您在處理或歸檔時,能簡單辨識每個匯出檔案的來源。 對於只需要特定工作表的目標匯出,請使用 `GetWorkSheet()` 擷取所需的工作表,然後在該工作表物件上直接呼叫 `SaveAsCsv()` 。 在 IronXL 文件中瞭解更多關於 [ Excel 格式間轉換](/csharp/excel/how-to/csharp-convert-xlsx-to-csv/)的資訊。 如何將 DataTable 匯出為 CSV? 企業應用程式經常使用從資料庫查詢、API 回應或記憶體資料處理中填充的 `DataTable` 物件。 IronXL for .NET 在這些 .NET 資料結構與檔案匯出之間架起橋樑,提供從應用程式記憶體到可分享 CSV 檔案的可靠路徑。 與使用 `var` writer 方法或使用新的 `StreamWriter` 來手動撰寫 CSV 檔案相比,此方法更為穩健。 ```cs using IronXL; using System.Data; // Create and populate a DataTable with columns DataTable products = new DataTable(); products.Columns.Add("SKU", typeof(string)); products.Columns.Add("ProductName", typeof(string)); products.Columns.Add("Price", typeof(decimal)); products.Columns.Add("InStock", typeof(int)); // Add rows of data products.Rows.Add("SKU-001", "Wireless Mouse", 29.99m, 150); products.Rows.Add("SKU-002", "Mechanical Keyboard", 89.99m, 75); products.Rows.Add("SKU-003", "USB-C Hub", 45.99m, 200); // Create workbook and transfer DataTable contents WorkBook workBook = WorkBook.Create(); WorkSheet sheet = workBook.DefaultWorkSheet; // Add header row from column names for (int col = 0; col < products.Columns.Count; col++) { sheet.SetCellValue(0, col, products.Columns[col].ColumnName); } // Add data rows using a loop for (int row = 0; row < products.Rows.Count; row++) { for (int col = 0; col < products.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, products.Rows[row][col].ToString()); } } // Export to CSV and save to the specified path workBook.SaveAsCsv("product_inventory.csv", ","); ``` 此模式會迭代 `DataTable` 結構,先傳輸列頭,然後有系統地填入每一行資料。 `DefaultWorkSheet` 屬性可快速存取新建立的工作簿中的第一個工作表,在簡單的情況下不需要明確地建立工作表。 預設情況下,該方法會依序處理所有行。 ### 輸出  IronXL 在傳輸過程中會保留資料類型,確保數值維持其精確度,日期保留其格式。 此方法適用於任何大小的 [資料表](/csharp/excel/how-to/csharp-datable-to-csv/),不論是包含來自簡單查詢的數十筆記錄,或是來自全面資料匯出的數千筆記錄。 若要在匯出前進行其他試算表操作,請探索儲存格格式化選項和 [範圍操作](/csharp/excel/tutorials/如何讀取-excel-file-csharp/)。 如何處理 CSV 檔案中的自訂分隔符? 不同的系統和地區標準需要不同的分隔符號。 雖然逗號在許多國家都是標準的分隔符號,但在歐洲地區,逗號通常是數值中的小數分隔符號,因此歐洲地區更偏好使用分號。 當源資料中的欄位值包含逗號時,Tab-separated 檔案 (TSV) 會很受歡迎。 IronXL 的 `SaveAsCsv()` 方法可以滿足所有這些情況,而不需要額外的程式碼來處理每一行輸出。 ```cs using IronXL; WorkBook workBook = WorkBook.Load("data.xlsx"); // Standard comma delimiter (default format) workBook.SaveAsCsv("output_comma.csv", ","); // Semicolon delimiter (common in European systems) workBook.SaveAsCsv("output_semicolon.csv", ";"); // Tab delimiter (TSV format) workBook.SaveAsCsv("output_tab.tsv", "\t"); // Pipe delimiter (used in some data interchange formats) workBook.SaveAsCsv("output_pipe.csv", "|"); ``` `SaveAsCsv()` 的第二個參數接受任何字串作為分隔符,為整合不同的系統和區域需求提供了完全的彈性。 在為國際發行產生檔案時,請考慮目標系統的區域期望 - 歐洲的金融系統通常期望使用分號分隔,而北美的系統通常預設為逗號。 ## 最佳實務 在 C# 中處理 CSV 檔案時,遵循最佳實務可確保您的資料保持精確、可讀,並與其他系統相容。 以下是一些基本準則: * 一致的分隔符:在整個 CSV 檔案中,務必使用一致的分隔符,例如逗號或分號。這有助於在匯入或匯出資料時防止解析錯誤。 * 引用特殊值:如果您的資料值包含逗號、引號或其他特殊字符,請用雙引號括住它們,以維護 CSV 資料的完整性。 * 日期和時間格式:在 CSV 檔案中使用一致的日期和時間格式,以避免混淆,並確保與其他應用程式相容。 * 避免在值中使用換行符:避免在值中包含換行符號,因為這些符號會擾亂行結構並導致格式問題。 * 利用程式庫:利用類似 CsvHelper 的函式庫來簡化 CSV 檔案的讀寫。 CsvHelper 可以處理 CSV 格式的許多複雜問題,例如轉義、引號和自訂分隔符。 * 檔案處理:在寫入之前,務必檢查檔案是否存在,並優雅地處理異常。 使用 `using` 語句以確保檔案串流在使用後被適當地關閉與處理。 例如,您可以在 Visual Studio 中啟動一個新專案,安裝 CsvHelper NuGet 套件,並使用 `CsvWriter` 類將資料寫入 CSV 檔案。定義一個具有 Firstname 和 Lastname 等屬性的 Student 類別,然後使用 `CsvWriter` 將 Student 物件的清單匯出至 CSV 檔案。 此方法不僅能簡化您的工作流程,還能降低出錯的風險,確保您的 CSV 檔案結構良好,可在任何應用程式中使用。 ## 結論 有了 IronXL,在 C# 中建立和匯出 CSV 檔案變得非常有效率。 從產生填入結構化資料的新檔案,到轉換複雜的多表 Excel 工作簿,該函式庫提供了簡潔、直覺式的 API,可處理正確 CSV 格式化、特殊字符轉換和公式評估等底層複雜問題。 與需要使用 `var stream` 和 `var csv` 變數或附加文字邏輯撰寫自訂程式碼的手動方式不同,IronXL 簡化了整個流程。 本文章涵蓋的主要方法和技巧包括 * `WorkBook.Create()` 用於在記憶體中初始化新的試算表 * `WorkBook.Load()` 用於開啟任何支援格式的現有 Excel 檔案 * `SaveAsCsv()`用於以可自訂的分隔符匯出資料 * 使用 `GetWorkSheet()` 匯出個別工作表,以進行目標轉換 * 資料庫至 CSV 工作流程的 DataTable 迭代模式 * 使用 `foreach` 循環匯出物件清單 [開始免費試用](trial-license)以探索完整的試算表功能,或[購買授權](/csharp/excel/licensing/)進行生產部署。 如需其他涵蓋先進情境的範例,例如儲存格樣式、公式建立和圖表生成,請探索全面的 [IronXL 文件](/csharp/excel/docs/)和 [code examples](/csharp/excel/examples/convert-excel-spreadsheet/) 函式庫。 常見問題解答 什麼是 CSV 檔案?它為什麼重要? CSV 檔案(逗號分隔值檔案)是一種純文字格式,用於在應用程式、資料庫和報表系統之間交換資料。其通用格式使其在匯出清單、產生報表和準備用於分析的資料方面至關重要。 如何使用 C# 建立 CSV 檔案? 您可以使用 IronXL 在 C# 中建立 CSV 文件,利用其強大的資料操作功能,與 `StringBuilder` 或 `StreamWriter` 等手動方法相比,這簡化了該過程。 使用 IronXL 建立 CSV 檔案有哪些優勢? IronXL 提供了一種簡化的、無錯誤的 C# CSV 檔案建立方法,與傳統的手動方法相比,它能更有效率地處理複雜的資料結構。 IronXL在創建CSV檔案時如何處理資料複雜性? IronXL 旨在輕鬆管理複雜的資料結構,最大限度地減少錯誤,並在 C# 中建立 CSV 檔案時確保資料完整性。 IronXL 能否用於將資料導入分析平台? 是的,IronXL 可以透過建立結構良好的 CSV 檔案來準備匯入到分析平台的數據,從而確保數據傳輸的兼容性和便利性。 是否可以使用 IronXL 自動產生 CSV 檔案? IronXL 支援 C# 中的自動化,讓開發人員以程式設計方式產生 CSV 文件,作為大型 .NET 應用程式的一部分,從而提高效率和生產力。 C#中手動建立CSV檔案的方法有哪些常見陷阱? 隨著資料複雜性的增加,像 `StringBuilder` 或 `StreamWriter` 這樣的手動方法可能會變得容易出錯,從而導致資料準確性和格式一致性方面的問題。 IronXL 如何改進 .NET 開發中的 CSV 檔案建立流程? IronXL 透過提供處理資料複雜性的直覺方法和函數,簡化了 CSV 建立過程,確保在 .NET 應用程式中準確且有效率地產生 CSV 檔案。 IronXL能否將資料庫中的資料匯出到CSV檔案? 是的,IronXL 可用於將資料庫中的資料匯出到 CSV 文件,從而實現與其他系統的無縫資料交換和整合。 為什麼 IronXL 是現代 .NET 開發人員的首選? IronXL 因其能夠輕鬆處理複雜的資料操作、減少錯誤並簡化 C# 中的 CSV 檔案建立流程而受到現代 .NET 開發人員的青睞。 喬迪·巴迪亞 現在就和工程團隊聊天吧 軟體工程師 喬迪精通Python、C#和C++,除了在Iron Software運用這些技能外,他還從事遊戲程式設計。他參與產品測試、產品開發和研究等工作,為產品的持續改進做出了巨大貢獻。豐富的經驗讓他始終保持挑戰性和工作熱情,他表示這是他最喜歡在Iron Software工作的原因之一。喬迪在佛羅裡達州邁阿密長大,畢業於佛羅裡達大學,主修電腦科學和統計學。 相關文章 已發布 1月 21, 2026 C# CSV 庫:IronXL,用於讀取、寫入和 Excel 轉換 學習如何使用 IronXL 作為 C# CSV 函式庫。透過簡單的程式碼範例,了解如何讀取、寫入 CSV 和 Excel 格式,以及在兩者之間進行轉換。 閱讀更多 已發布 1月 21, 2026 C# 將 CSV 檔案讀取到 DataTable:完整開發者指南 學習如何使用 IronXL 在 C# 中有效地將 CSV 檔案讀取到 DataTable 中。包含 CSV 解析和資料庫導入的簡單程式碼範例。 閱讀更多 已發布 1月 21, 2026 使用 IronXL 在 VB.NET 中開啟 Excel 檔案 - 無需 Office 互通 學習如何在不使用 Microsoft Office 的情況下,使用 VB.NET 開啟和讀取 Excel 檔案。本教學使用 IronXL 編寫,並提供 XLSX/XLS 處理的範例程式碼。 閱讀更多 如何使用 Interop 而不是 IronXL 將資料表匯出到 Excel C#讀取 CSV .NET:使用 IronXL 的...
已發布 1月 21, 2026 C# CSV 庫:IronXL,用於讀取、寫入和 Excel 轉換 學習如何使用 IronXL 作為 C# CSV 函式庫。透過簡單的程式碼範例,了解如何讀取、寫入 CSV 和 Excel 格式,以及在兩者之間進行轉換。 閱讀更多
已發布 1月 21, 2026 C# 將 CSV 檔案讀取到 DataTable:完整開發者指南 學習如何使用 IronXL 在 C# 中有效地將 CSV 檔案讀取到 DataTable 中。包含 CSV 解析和資料庫導入的簡單程式碼範例。 閱讀更多
已發布 1月 21, 2026 使用 IronXL 在 VB.NET 中開啟 Excel 檔案 - 無需 Office 互通 學習如何在不使用 Microsoft Office 的情況下,使用 VB.NET 開啟和讀取 Excel 檔案。本教學使用 IronXL 編寫,並提供 XLSX/XLS 處理的範例程式碼。 閱讀更多