使用 IRONXL C# 使用 IronXL 儲存為 CSV 格式 Curtis Chau 更新:2026年1月5日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 使用 IronXL 在 C# 中管理 CSV 文件 從產生業務報告到匯出資料庫記錄,管理 CSV 檔案是現代 C# 應用程式的基本要求。 雖然 .NET 提供了基本的文件寫入功能,但要有效率地處理 CSV 文件,尤其是在處理特殊字元、多種資料類型和大型資料集時,則需要更強大的解決方案。 IronXL提供了一個全面的 API,可以處理 CSV 操作(例如 C# 儲存到 CSV),並完全相容於 Excel,從而簡化了整個過程。 本教學課程示範如何利用 IronXL 的強大功能在 C# 應用程式中建立、儲存和管理 CSV 檔案。 您將學習處理各種資料來源的實用技巧,從簡單的集合到複雜的資料表,同時保持程式碼的簡潔性和可維護性。 使用 IronXL 將 C# 儲存為 CSV 格式:圖 1 - IronXL IronXL入門指南 在深入研究 CSV 操作之前,您需要在專案中安裝IronXL 。 該程式庫支援 .NET Framework 4.6.2+ 和 .NET Core 2+,使其與傳統應用程式和現代應用程式都相容。 IronXL 還提供出色的跨平台支持,可在 Windows、Linux 和 macOS 環境下無縫運行。 使用 IronXL 將 C# 儲存為 CSV 格式:圖 2 - 跨平台 開啟 Visual Studio,前往套件管理員控制台,然後鍵入下列命令: // Install via Package Manager Console Install-Package IronXL.Excel // Install via Package Manager Console Install-Package IronXL.Excel $vbLabelText $csharpLabel 使用 IronXL 將 C# 儲存為 CSV 格式:圖 3 - 安裝 // Or via .NET CLI dotnet add package IronXL.Excel // Or via .NET CLI dotnet add package IronXL.Excel $vbLabelText $csharpLabel 安裝完成後,將IronXL命名空間新增至您的 C# 檔案中,即可存取所有 CSV 管理功能,例如寫入資料: using IronXL; using IronXL; Imports IronXL $vbLabelText $csharpLabel 這個簡單的設定讓您可以立即使用強大的電子表格操作功能。 與需要 Excel 互通或複雜的 CSV 解析邏輯的傳統方法不同,IronXL 提供了一個直覺的 API,可以在背景處理複雜性。 該程式庫無需安裝 Microsoft Office 即可獨立運行,因此非常適合伺服器部署和容器化應用程式。 如果在安裝或初始化程式庫時發生錯誤,請確保您的專案面向受支援的 .NET 版本,並且所有相依性都已正確還原。 如何將資料儲存並寫入新的 CSV 檔案? 使用 IronXL 從頭開始建立或編寫 CSV 檔案遵循直覺的模式。 首先建立一個工作簿,將所有資料新增到儲存格中,然後將其儲存為 CSV 格式。 這種方法比基本的字串連接方法提供了更多的控制選項。 在深入探討主要的 CSV 創建邏輯之前,這裡有一個簡單的模型定義,使用公共類別 student 結構。 該模型表示結構化數據,我們可以將其匯出為 CSV 檔案。 // Define a Student class to model your data public class Student { public string? Name { get; set; } public int Age { get; set; } public string? Grade { get; set; } } // Define a Student class to model your data public class Student { public string? Name { get; set; } public int Age { get; set; } public string? Grade { get; set; } } Public Class Student Public Property Name As String Public Property Age As Integer Public Property Grade As String End Class $vbLabelText $csharpLabel 您可以建立學生物件列表,然後使用 IronXL 將其有效地匯出到 CSV 檔案。以下範例展示如何將課程屬性對應到工作表單元格: using System; using System.Collections.Generic; using IronXL; class Program { static void Main(string[] args) { // Create sample data using the student class List<Student> students = new List<Student>() { new Student { Name = "Alice Johnson", Age = 20, Grade = "A" }, new Student { Name = "Brian Smith", Age = 22, Grade = "B+" }, new Student { Name = "Chloe Brown", Age = 19, Grade = "A-" }, new Student { Name = "David Clark", Age = 21, Grade = "B" } }; // Create a new workbook and worksheet WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Students"); // Add headers sheet["A1"].Value = "Name"; sheet["B1"].Value = "Age"; sheet["C1"].Value = "Grade"; // Add student data to the worksheet for (int i = 0; i < students.Count; i++) { sheet[$"A{i + 2}"].Value = students[i].Name; sheet[$"B{i + 2}"].IntValue = students[i].Age; sheet[$"C{i + 2}"].Value = students[i].Grade; } // Save as CSV file workbook.SaveAsCsv("students.csv"); Console.WriteLine("students.csv file has been created successfully!"); } } using System; using System.Collections.Generic; using IronXL; class Program { static void Main(string[] args) { // Create sample data using the student class List<Student> students = new List<Student>() { new Student { Name = "Alice Johnson", Age = 20, Grade = "A" }, new Student { Name = "Brian Smith", Age = 22, Grade = "B+" }, new Student { Name = "Chloe Brown", Age = 19, Grade = "A-" }, new Student { Name = "David Clark", Age = 21, Grade = "B" } }; // Create a new workbook and worksheet WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Students"); // Add headers sheet["A1"].Value = "Name"; sheet["B1"].Value = "Age"; sheet["C1"].Value = "Grade"; // Add student data to the worksheet for (int i = 0; i < students.Count; i++) { sheet[$"A{i + 2}"].Value = students[i].Name; sheet[$"B{i + 2}"].IntValue = students[i].Age; sheet[$"C{i + 2}"].Value = students[i].Grade; } // Save as CSV file workbook.SaveAsCsv("students.csv"); Console.WriteLine("students.csv file has been created successfully!"); } } Imports System Imports System.Collections.Generic Imports IronXL Class Program Shared Sub Main(ByVal args As String()) ' Create sample data using the student class Dim students As New List(Of Student)() From { New Student With {.Name = "Alice Johnson", .Age = 20, .Grade = "A"}, New Student With {.Name = "Brian Smith", .Age = 22, .Grade = "B+"}, New Student With {.Name = "Chloe Brown", .Age = 19, .Grade = "A-"}, New Student With {.Name = "David Clark", .Age = 21, .Grade = "B"} } ' Create a new workbook and worksheet Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX) Dim sheet As WorkSheet = workbook.CreateWorkSheet("Students") ' Add headers sheet("A1").Value = "Name" sheet("B1").Value = "Age" sheet("C1").Value = "Grade" ' Add student data to the worksheet For i As Integer = 0 To students.Count - 1 sheet($"A{i + 2}").Value = students(i).Name sheet($"B{i + 2}").IntValue = students(i).Age sheet($"C{i + 2}").Value = students(i).Grade Next ' Save as CSV file workbook.SaveAsCsv("students.csv") Console.WriteLine("students.csv file has been created successfully!") End Sub End Class Class Student Public Property Name As String Public Property Age As Integer Public Property Grade As String End Class $vbLabelText $csharpLabel 解釋: 公共類別 student 定義了資料模型的模式。 使用範例資料建立學生物件清單。 IronXL 的WorkBook和WorkSheet API 用於在記憶體中建立結構化電子表格。 手動新增標題,以確保 CSV 輸出的可讀性。 將學生資料逐行寫入工作表。 最後,使用SaveAsCsv()將資料儲存為 CSV 檔案。 輸出 使用 IronXL 將 C# 儲存為 CSV 格式:圖 4 - 控制台輸出 使用 IronXL 將 C# 儲存為 CSV 格式:圖 5 - Excel 輸出 這種模式具有可擴展性; 因此,您可以輕鬆地將其調整為更大的資料集,或將其整合到從資料庫或 API 檢索學生資料的應用程式中。 例如,如果在寫入檔案時發生錯誤(例如,檔案被鎖定或路徑無效),您可以優雅地處理它: try { workbook.SaveAsCsv("students.csv"); } catch (Exception ex) { Console.WriteLine($"Error occurred while saving CSV: {ex.Message}"); } try { workbook.SaveAsCsv("students.csv"); } catch (Exception ex) { Console.WriteLine($"Error occurred while saving CSV: {ex.Message}"); } Try workbook.SaveAsCsv("students.csv") Catch ex As Exception Console.WriteLine($"Error occurred while saving CSV: {ex.Message}") End Try $vbLabelText $csharpLabel 即使出現文件 I/O 問題,也能確保您的應用程式保持穩定可靠且資訊豐富。 以下是建立基本 CSV 檔案的範例程式碼。 static void Main(string[] args) { // Create a new workbook var writer = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = writer.CreateWorkSheet("Sales Data"); // Add headers sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Price"; sheet["D1"].Value = "Total"; // Add data rows sheet["A2"].Value = "Widget A"; sheet["B2"].IntValue = 100; sheet["C2"].DecimalValue = 29.99m; sheet["D2"].Formula = "=B2*C2"; sheet["A3"].Value = "Widget B"; sheet["B3"].IntValue = 50; sheet["C3"].DecimalValue = 49.99m; sheet["D3"].Formula = "=B3*C3"; // Save as new CSV file writer.SaveAsCsv("sales_report.csv"); } static void Main(string[] args) { // Create a new workbook var writer = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = writer.CreateWorkSheet("Sales Data"); // Add headers sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Price"; sheet["D1"].Value = "Total"; // Add data rows sheet["A2"].Value = "Widget A"; sheet["B2"].IntValue = 100; sheet["C2"].DecimalValue = 29.99m; sheet["D2"].Formula = "=B2*C2"; sheet["A3"].Value = "Widget B"; sheet["B3"].IntValue = 50; sheet["C3"].DecimalValue = 49.99m; sheet["D3"].Formula = "=B3*C3"; // Save as new CSV file writer.SaveAsCsv("sales_report.csv"); } $vbLabelText $csharpLabel 這段程式碼會建立一個包含標題和資料的結構化工作簿,然後將其匯出為 CSV 格式。 WorkBook.Create()方法在記憶體中初始化一個新的電子表格。 每個單元格可以包含不同的資料類型,例如字串、整數、小數,甚至公式。 當您呼叫SaveAsCsv()時,IronXL 會自動處理轉換,正確轉義任何特殊字元並保持資料完整性。 這種方法的優點在於它的彈性。 您可以像在電子表格中一樣處理數據,然後再匯出,套用公式、格式設定或驗證規則。 IronXL 在匯出過程中會自動計算公式,確保您的 CSV 檔案包含計算值而不是公式文字。 輸出 使用 IronXL 將 C# 儲存為 CSV 格式:圖 6 - CSV 輸出 對於自訂分隔符號需求,IronXL 可讓您指定標準逗號以外的其他分隔符號: // Save with semicolon delimiter for European locale compatibility workbook.SaveAsCsv("sales_report.csv", ";"); // Save with semicolon delimiter for European locale compatibility workbook.SaveAsCsv("sales_report.csv", ";"); $vbLabelText $csharpLabel // Save with tab delimiter workbook.SaveAsCsv("sales_report.tsv", "\t"); // Save with tab delimiter workbook.SaveAsCsv("sales_report.tsv", "\t"); ' Save with tab delimiter workbook.SaveAsCsv("sales_report.tsv", vbTab) $vbLabelText $csharpLabel 這種靈活性確保了與各種區域環境和應用需求的兼容性。 此庫會自動處理編碼問題,確保在不同系統和區域設定下都能正確顯示字元。 使用 IronXL 將 C# 儲存為 CSV 格式:圖 7 - 功能 如何將資料表匯出為 CSV 檔案? DataTables 在 .NET 應用程式中無所不在,用於儲存來自資料庫或業務邏輯的表格資料。 IronXL 提供無縫的 DataTable 到 CSV 轉換,在整個過程中保留列名和資料類型。 // Create a sample DataTable (simulating database results) to store data DataTable customerOrders = new DataTable("CustomerOrders"); customerOrders.Columns.Add("OrderID", typeof(int)); customerOrders.Columns.Add("CustomerName", typeof(string)); customerOrders.Columns.Add("OrderDate", typeof(DateTime)); customerOrders.Columns.Add("Amount", typeof(decimal)); // Add sample data customerOrders.Rows.Add(1001, "Acme Corp", new DateTime(2024, 1, 15), 1250.50m); customerOrders.Rows.Add(1002, "TechStart Inc", new DateTime(2024, 1, 16), 3500.00m); customerOrders.Rows.Add(1003, "Global Systems", new DateTime(2024, 1, 17), 875.25m); // Convert DataTable to CSV using IronXL WorkBook workbook = WorkBook.Create(); WorkSheet sheet = workbook.CreateWorkSheet("Orders"); // Add headers from DataTable columns for (int i = 0; i < customerOrders.Columns.Count; i++) { sheet.SetCellValue(0, i, customerOrders.Columns[i].ColumnName); } // Add data rows for (int row = 0; row < customerOrders.Rows.Count; row++) { for (int col = 0; col < customerOrders.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, customerOrders.Rows[row][col]); } } // Export to CSV workbook.SaveAsCsv("customer_orders.csv"); // Create a sample DataTable (simulating database results) to store data DataTable customerOrders = new DataTable("CustomerOrders"); customerOrders.Columns.Add("OrderID", typeof(int)); customerOrders.Columns.Add("CustomerName", typeof(string)); customerOrders.Columns.Add("OrderDate", typeof(DateTime)); customerOrders.Columns.Add("Amount", typeof(decimal)); // Add sample data customerOrders.Rows.Add(1001, "Acme Corp", new DateTime(2024, 1, 15), 1250.50m); customerOrders.Rows.Add(1002, "TechStart Inc", new DateTime(2024, 1, 16), 3500.00m); customerOrders.Rows.Add(1003, "Global Systems", new DateTime(2024, 1, 17), 875.25m); // Convert DataTable to CSV using IronXL WorkBook workbook = WorkBook.Create(); WorkSheet sheet = workbook.CreateWorkSheet("Orders"); // Add headers from DataTable columns for (int i = 0; i < customerOrders.Columns.Count; i++) { sheet.SetCellValue(0, i, customerOrders.Columns[i].ColumnName); } // Add data rows for (int row = 0; row < customerOrders.Rows.Count; row++) { for (int col = 0; col < customerOrders.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, customerOrders.Rows[row][col]); } } // Export to CSV workbook.SaveAsCsv("customer_orders.csv"); Imports System Imports System.Data Imports IronXL ' Create a sample DataTable (simulating database results) to store data Dim customerOrders As New DataTable("CustomerOrders") customerOrders.Columns.Add("OrderID", GetType(Integer)) customerOrders.Columns.Add("CustomerName", GetType(String)) customerOrders.Columns.Add("OrderDate", GetType(DateTime)) customerOrders.Columns.Add("Amount", GetType(Decimal)) ' Add sample data customerOrders.Rows.Add(1001, "Acme Corp", New DateTime(2024, 1, 15), 1250.5D) customerOrders.Rows.Add(1002, "TechStart Inc", New DateTime(2024, 1, 16), 3500.0D) customerOrders.Rows.Add(1003, "Global Systems", New DateTime(2024, 1, 17), 875.25D) ' Convert DataTable to CSV using IronXL Dim workbook As WorkBook = WorkBook.Create() Dim sheet As WorkSheet = workbook.CreateWorkSheet("Orders") ' Add headers from DataTable columns For i As Integer = 0 To customerOrders.Columns.Count - 1 sheet.SetCellValue(0, i, customerOrders.Columns(i).ColumnName) Next ' Add data rows For row As Integer = 0 To customerOrders.Rows.Count - 1 For col As Integer = 0 To customerOrders.Columns.Count - 1 sheet.SetCellValue(row + 1, col, customerOrders.Rows(row)(col)) Next Next ' Export to CSV workbook.SaveAsCsv("customer_orders.csv") $vbLabelText $csharpLabel 本範例示範了一個實際場景,即需要將資料庫中的訂單資料匯出以用於報表或整合目的。 程式碼遍歷 DataTable 結構,保留列標題和行資料。 IronXL 能夠正確處理不同資料類型的轉換,確保產生的 CSV 檔案中日期、小數和字串格式正確。 輸出 使用 IronXL 將 C# 資料表儲存為 CSV 格式:圖 8 - 資料表到 CSV 輸出 對於涉及多個相關表格或進階資料轉換的更複雜場景,您可以利用 IronXL 的儲存格參考和公式功能: // Add summary row with formulas int lastRow = customerOrders.Rows.Count + 1; sheet[$"A{lastRow + 1}"].Value = "Total:"; sheet[$"D{lastRow + 1}"].Formula = $"=SUM(D2:D{lastRow})"; // Calculate and save workbook.SaveAsCsv("customer_orders_with_total.csv"); // Add summary row with formulas int lastRow = customerOrders.Rows.Count + 1; sheet[$"A{lastRow + 1}"].Value = "Total:"; sheet[$"D{lastRow + 1}"].Formula = $"=SUM(D2:D{lastRow})"; // Calculate and save workbook.SaveAsCsv("customer_orders_with_total.csv"); ' Add summary row with formulas Dim lastRow As Integer = customerOrders.Rows.Count + 1 sheet($"A{lastRow + 1}").Value = "Total:" sheet($"D{lastRow + 1}").Formula = $"=SUM(D2:D{lastRow})" ' Calculate and save workbook.SaveAsCsv("customer_orders_with_total.csv") $vbLabelText $csharpLabel 這種方法比傳統的DataTable匯出方法提供了更多的控制選項。 在最終匯出之前,您可以新增計算欄位、應用條件格式邏輯或重新組織列。 IronXL 文件提供了進階 DataTable 操作場景的全面範例。 如何將Excel檔案轉換為CSV檔案? IronXL 最強大的功能之一是能夠與現有的 Excel 檔案無縫協作,將其轉換為 CSV 格式,同時保持資料完整性。 當與產生 Excel 報表但需要 CSV 檔案進行下游處理的系統整合時,此功能尤其有用。 // Load an existing Excel file WorkBook existingWorkbook = WorkBook.Load("Budget.xlsx"); // Access the first worksheet WorkSheet sheet = existingWorkbook.WorkSheets[0]; // Save as CSV - single sheet sheet.SaveAsCsv("Budget.csv"); // Or save entire workbook (creates multiple CSV files for multiple sheets) existingWorkbook.SaveAsCsv("BudgetReport.csv"); // Load an existing Excel file WorkBook existingWorkbook = WorkBook.Load("Budget.xlsx"); // Access the first worksheet WorkSheet sheet = existingWorkbook.WorkSheets[0]; // Save as CSV - single sheet sheet.SaveAsCsv("Budget.csv"); // Or save entire workbook (creates multiple CSV files for multiple sheets) existingWorkbook.SaveAsCsv("BudgetReport.csv"); ' Load an existing Excel file Dim existingWorkbook As WorkBook = WorkBook.Load("Budget.xlsx") ' Access the first worksheet Dim sheet As WorkSheet = existingWorkbook.WorkSheets(0) ' Save as CSV - single sheet sheet.SaveAsCsv("Budget.csv") ' Or save entire workbook (creates multiple CSV files for multiple sheets) existingWorkbook.SaveAsCsv("BudgetReport.csv") $vbLabelText $csharpLabel 載入 Excel 檔案時,IronXL 會保留所有儲存格值,包括公式計算出的值。 該程式庫會在轉換過程中評估 Excel 公式,確保您的 CSV 檔案包含實際計算值。 這樣就消除了 CSV 匯出檔案中出現公式文字的常見問題。 輸入 使用 IronXL 將 C# 儲存為 CSV 格式:圖 9 - 範例輸入 輸出 使用 IronXL 將 C# 儲存為 CSV 格式:圖 10 - Excel 到 CSV 輸出 對於包含多個工作表的工作簿,IronXL 會智慧地處理每個工作表: // Process multiple sheets WorkBook multiSheetWorkbook = WorkBook.Load("annual_data.xlsx"); foreach (WorkSheet sheet in multiSheetWorkbook.WorkSheets) { string fileName = $"export_{sheet.Name}.csv"; sheet.SaveAsCsv(fileName); Console.WriteLine($"Exported {sheet.Name} to {fileName}"); } // Process multiple sheets WorkBook multiSheetWorkbook = WorkBook.Load("annual_data.xlsx"); foreach (WorkSheet sheet in multiSheetWorkbook.WorkSheets) { string fileName = $"export_{sheet.Name}.csv"; sheet.SaveAsCsv(fileName); Console.WriteLine($"Exported {sheet.Name} to {fileName}"); } Imports System ' Process multiple sheets Dim multiSheetWorkbook As WorkBook = WorkBook.Load("annual_data.xlsx") For Each sheet As WorkSheet In multiSheetWorkbook.WorkSheets Dim fileName As String = $"export_{sheet.Name}.csv" sheet.SaveAsCsv(fileName) Console.WriteLine($"Exported {sheet.Name} to {fileName}") Next $vbLabelText $csharpLabel 這段程式碼遍歷 Excel 檔案中的所有工作表,並為每個工作表建立單獨的 CSV 檔案。 文件命名中保留了工作表名稱,方便識別每個 CSV 檔案的來源。 IronXL 支援多種 Excel 格式,包括 XLSX、XLS、XLSM 和 XLTX,可廣泛相容於不同的 Excel 版本和使用場景。 請參閱文件以了解更多關於格式轉換的資訊。 進階 CSV 管理技巧 除了基本的 CSV 創建功能外,IronXL 還提供了處理生產環境中經常出現的複雜場景的複雜功能。 這些功能使其區別於簡單的文件寫入方法。 處理特殊字元時,IronXL 會自動進行轉義和編碼: WorkBook workbook = WorkBook.Create(); WorkSheet sheet = workbook.CreateWorkSheet("Data"); // Data with special characters sheet["A1"].Value = "Company \"ABC\", Inc."; // Quotes sheet["B1"].Value = "Line 1\nLine 2"; // Newlines sheet["C1"].Value = "Price: €50,00"; // Unicode characters workbook.SaveAsCsv("special_chars.csv"); WorkBook workbook = WorkBook.Create(); WorkSheet sheet = workbook.CreateWorkSheet("Data"); // Data with special characters sheet["A1"].Value = "Company \"ABC\", Inc."; // Quotes sheet["B1"].Value = "Line 1\nLine 2"; // Newlines sheet["C1"].Value = "Price: €50,00"; // Unicode characters workbook.SaveAsCsv("special_chars.csv"); Dim workbook As WorkBook = WorkBook.Create() Dim sheet As WorkSheet = workbook.CreateWorkSheet("Data") ' Data with special characters sheet("A1").Value = "Company ""ABC"", Inc." ' Quotes sheet("B1").Value = "Line 1" & vbLf & "Line 2" ' Newlines sheet("C1").Value = "Price: €50,00" ' Unicode characters workbook.SaveAsCsv("special_chars.csv") $vbLabelText $csharpLabel IronXL 可以正確轉義引號,處理多行內容,並保留 Unicode 字元。 這種自動處理方式可以防止手動字串操作方法中常見的 CSV 解析錯誤。 輸出 使用 IronXL 將 C# 儲存為 CSV 格式:圖 11 - 特殊字元輸出 對於批次處理場景,您可以有效率地處理多個文件: string[] sourceFiles = Directory.GetFiles("input_folder", "*.xlsx"); foreach (string file in sourceFiles) { WorkBook wb = WorkBook.Load(file); var csv = Path.ChangeExtension(file, ".csv"); wb.SaveAsCsv(csv); } string[] sourceFiles = Directory.GetFiles("input_folder", "*.xlsx"); foreach (string file in sourceFiles) { WorkBook wb = WorkBook.Load(file); var csv = Path.ChangeExtension(file, ".csv"); wb.SaveAsCsv(csv); } Imports System.IO Dim sourceFiles As String() = Directory.GetFiles("input_folder", "*.xlsx") For Each file As String In sourceFiles Dim wb As WorkBook = WorkBook.Load(file) Dim csv = Path.ChangeExtension(file, ".csv") wb.SaveAsCsv(csv) Next $vbLabelText $csharpLabel 處理大型資料集時,記憶體效率至關重要。 IronXL 在內部優化了記憶體使用,但您可以透過分塊處理資料和正確釋放資源來進一步提高效能: WorkBook largeWorkbook = WorkBook.Create(); WorkSheet sheet = largeWorkbook.CreateWorkSheet("LargeData"); // Process in batches const int batchSize = 1000; for (int batch = 0; batch < 10; batch++) { for (int row = 0; row < batchSize; row++) { int actualRow = (batch * batchSize) + row; sheet.SetCellValue(actualRow, 0, $"Row {actualRow}"); // Add more data... sheet.SetCellValue(actualRow, 1, DateTime.Now); sheet.SetCellValue(actualRow, 2, $"Batch {batch + 1}"); } } largeWorkbook.SaveAsCsv("large_dataset.csv"); WorkBook largeWorkbook = WorkBook.Create(); WorkSheet sheet = largeWorkbook.CreateWorkSheet("LargeData"); // Process in batches const int batchSize = 1000; for (int batch = 0; batch < 10; batch++) { for (int row = 0; row < batchSize; row++) { int actualRow = (batch * batchSize) + row; sheet.SetCellValue(actualRow, 0, $"Row {actualRow}"); // Add more data... sheet.SetCellValue(actualRow, 1, DateTime.Now); sheet.SetCellValue(actualRow, 2, $"Batch {batch + 1}"); } } largeWorkbook.SaveAsCsv("large_dataset.csv"); Dim largeWorkbook As WorkBook = WorkBook.Create() Dim sheet As WorkSheet = largeWorkbook.CreateWorkSheet("LargeData") ' Process in batches Const batchSize As Integer = 1000 For batch As Integer = 0 To 9 For row As Integer = 0 To batchSize - 1 Dim actualRow As Integer = (batch * batchSize) + row sheet.SetCellValue(actualRow, 0, $"Row {actualRow}") ' Add more data... sheet.SetCellValue(actualRow, 1, DateTime.Now) sheet.SetCellValue(actualRow, 2, $"Batch {batch + 1}") Next Next largeWorkbook.SaveAsCsv("large_dataset.csv") $vbLabelText $csharpLabel 輸出 使用 IronXL 將 C# 儲存為 CSV 格式:圖 12 - 大型資料集輸出 結論 IronXL 將 C# 中的 CSV 檔案管理從一項繁瑣的任務變成了一個簡單的流程。 透過為 CSV 和 Excel 操作提供統一的 API,它消除了對多個程式庫或複雜解析邏輯的需求。 該程式庫能夠自動處理特殊字元、資料類型和編碼問題,從而確保在不同系統和地區之間可靠地匯出資料。 無論您是建立報告系統、資料整合管道或簡單的匯出功能,IronXL 都能提供高效 CSV 管理所需的工具。 它與現有的 Excel 檔案和 DataTable 結構相容,因此無需進行重大重構即可輕鬆整合到現有應用程式中。 CSV 檔案產生後,您可以直接在 Excel 中開啟它們,或使用任何文字編輯器檢查它們的原始格式,以便快速驗證或排除故障。 準備好簡化您的 CSV 操作了嗎? 從免費試用開始,或探索全面的API說明文件,發掘更多進階功能。 對於生產部署,專業 License 起價為 $799 並包含專業支援和更新。 使用 IronXL 將 C# 檔案儲存為 CSV 格式:圖 13 - 許可 常見問題解答 IronXL 是什麼? IronXL 是一個功能強大的 C# 函式庫,可讓開發人員在 .NET 應用程式中讀取、編輯和建立 Excel 與 CSV 檔案。 如何使用 IronXL 將資料儲存為 CSV 格式? 您可以使用 IronXL 將資料儲存為 CSV 格式,方法是將資料載入 IronXL WorkBook,然後再使用「SaveAs」方法將資料匯出為 CSV 檔案。 使用 IronXL 進行 CSV 管理有哪些好處? IronXL 提供管理 CSV 檔案的有效方式,提供的功能包括簡易檔案操作、資料匯入/匯出,以及與各種 .NET 應用程式相容。 IronXL 在儲存為 CSV 時可以處理大型資料集嗎? 是的,IronXL 旨在高效處理大型資料集,因此適合將大量資料集合儲存為 CSV 格式。 是否可以使用 IronXL.Excel 將 Excel 檔案轉換為 CSV? 是的,IronXL.Excel 允許您將 Excel 檔案轉換為 CSV,只要將 Excel 檔案載入 WorkBook,並使用「SaveAs」方法將其匯出為 CSV 即可。 IronXL 與哪些程式語言相容? IronXL 與 C# 相容,可無縫整合至 .NET 應用程式。 IronXL 是否同時支援讀取和寫入 CSV 檔案? 是的,IronXL 支援 CSV 檔案的讀取與寫入,提供 CSV 檔案管理的全面解決方案。 在 C# 專案中使用 IronXL 是否有任何先決條件? 要在 C# 專案中使用 IronXL,您需要安裝 .NET Framework,並透過 NuGet 安裝 IronXL,即可輕鬆整合 IronXL。 IronXL 可以用於 CSV 檔案的資料分析嗎? 是的,IronXL 可讓您以程式化的方式處理和查詢 CSV 檔案內的資料,因此可用於資料分析。 哪些類型的應用程式可受惠於 IronXL 的 CSV 功能? 任何需要高效 CSV 資料管理的 .NET 應用程式,例如資料處理工具、報表系統和企業應用程式,都能從 IronXL for .NET 中獲益。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 相關文章 發表日期 2026年2月15日 如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C# 學習如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C#。 閱讀更多 發表日期 2026年2月15日 如何在未安裝 Office 的情況下使用 IronXL 開啟 VB.NET 中的現有 Excel 檔案 了解如何使用 IronXL for .NET 在未安裝 Office 的情況下在 VB.NET 中開啟現有的 Excel 檔案。 閱讀更多 發表日期 2026年2月15日 C# CSV to XLSX:完整開發人員指南 使用 IronXL 在 C# 中將 CSV 轉換為 XLSX。載入 CSV 檔案、保留資料類型、新增圖表,以及匯出為 Excel 格式,而無需 Microsoft Office 的相依性。 閱讀更多 如何使用 IronXL.Excel 在 C# 中產生 Excel 檔案如何使用 IronXL 在 C# 中讀...
發表日期 2026年2月15日 如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C# 學習如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C#。 閱讀更多
發表日期 2026年2月15日 如何在未安裝 Office 的情況下使用 IronXL 開啟 VB.NET 中的現有 Excel 檔案 了解如何使用 IronXL for .NET 在未安裝 Office 的情況下在 VB.NET 中開啟現有的 Excel 檔案。 閱讀更多
發表日期 2026年2月15日 C# CSV to XLSX:完整開發人員指南 使用 IronXL 在 C# 中將 CSV 轉換為 XLSX。載入 CSV 檔案、保留資料類型、新增圖表,以及匯出為 Excel 格式,而無需 Microsoft Office 的相依性。 閱讀更多