如何在 C# 中撰寫 CSV 文件
要在 C# 中編寫 CSV 文件,可以使用 IronXL 庫創建工作簿,使用類似 workSheet["A1"].Value = "Product" 的簡單語法向工作表單元格添加數據,然後使用 workBook.SaveAs("file.csv") 保存 - 提供了一種直接的數據導出方法。
本文將向您展示如何在新專案中使用名為 IronXL 的 C# 程式庫來寫入 CSV 檔案。 IronXL程式庫提供了一套完整的 Excel 檔案處理解決方案,無需安裝 Microsoft Office,因此非常適合用於伺服器環境和 Azure 部署。
如何將資料寫入 CSV 檔案?
-
安裝用於寫入 CSV 檔案的 C# 函式庫。
-
使用
WorkBook.Create建立新工作簿。 -
使用
WorkBook.CreateWorkSheet建立工作表。 -
使用
workSheet["cell name"].Value在儲存格中新增值。 - 使用
SaveAs方法另存為 CSV 檔案。
這些步驟為建立試算表及將資料匯出為各種格式奠定了基礎。 無論您處理的是 CSV、XLSX 或其他受支援的格式,操作流程皆大致相同。 針對更複雜的場景,您亦可匯入 Excel 資料,並在不同試算表檔案格式之間進行轉換。
為何 IronXL 是 CSV 操作的最佳選擇?
相較於 CSVHelper NuGet 套件,IronXL 對於需要將資料寫入 CSV 檔案的 C# 開發人員而言,無疑是更高效的解決方案。 在當今的軟體開發領域中,處理與操作資料的能力至關重要,而 IronXL 憑藉其專為 C# 設計的強大工具集,完美滿足此需求。
此函式庫在以下幾個關鍵領域表現卓越:
- 跨平台相容性:可在 Windows、Linux 和 macOS 上無縫運作
- 無需安裝 Excel:與傳統的 Interop 解決方案不同,IronXL 無需安裝 Excel
- 效能:針對處理大型資料集進行優化,並具備高效的記憶體使用效率
- 多功能性:支援多種檔案格式,包括 XLSX、XLS、TSV、JSON 及 XML
本文探討了 IronXL 的各項功能與方法,說明為何它能成為 C# 開發者的絕佳選擇,協助其簡化將資料寫入 CSV 檔案的流程,並在簡易性與精確性之間取得平衡。 無論您是開發 ASP.NET 應用程式、使用 Blazor,還是開發 .NET MAUI 應用程式,IronXL 都能提供一致且可靠的功能。
如何建立用於 CSV 操作的新 Visual Studio 專案?
要開始使用 IronXL程式庫,您需要建立一個新的 Visual Studio C# 專案,或載入現有的專案。 以下是在 Visual Studio 中建立新專案的方法:
-
開啟 Visual Studio 並導覽至"檔案"選單。 您將看到一個下拉式選單; 從此選單中選擇"新增"。 此操作將顯示另一個側邊選單。
Visual Studio 檔案選單下拉選單顯示"新建"、"開啟"、"複製儲存庫"以及各種專案建立選項。 圖 1:Visual Studio 的"檔案"選單,其中"新增 > 專案"已標示,展示建立用於 CSV 檔案操作之新 C# 專案的第一步
-
在側邊選單中,找到並點擊"專案"。 這會開啟一個新視窗。 請使用搜尋欄位查找"主控台應用程式"。 請選擇與 C# 相關的選項,然後點擊"下一步"按鈕繼續。 "主控台應用程式"範本非常適合用來展示 CSV 操作,且可輕鬆調整以適用於網頁應用程式或雲端部署。
Visual Studio 新專案對話方塊顯示已選擇"控制台應用程式"模板,並提供 C#、跨平台支援(Linux、macOS、Windows)和 .NET Core 框架等選項。 圖 2:在 Visual Studio 中建立支援跨平台 .NET Core 的新"主控台應用程式"專案
-
接著會出現一個設定視窗。 輸入專案名稱、指定專案位置,然後按一下"下一步"按鈕。 建議將專案整理於專用的資料夾結構中,特別是在處理多個 Excel 檔案或進行資料庫整合時。
Visual Studio 專案配置對話方塊顯示了名為"SpreadSheet"的新控制台應用程式的設置,其中包含 Linux、macOS、Windows 和 Console 平台選項。 圖 3:在 Visual Studio 中設定新專案的相關選項,包括專案名稱、儲存位置及解決方案選項
-
最後一個視窗出現。 選擇目標框架,並點擊"建立"按鈕以開始專案建立流程。 為確保與 IronXL 的條件格式設定及圖表建立等功能最佳相容性,建議使用 .NET 6.0 或更新版本。
Visual Studio 專案建立對話方塊顯示"其他資訊"步驟,其中已選擇 .NET 5.0 作為控制台應用程式的目標框架。 圖 4:在建立新的主控台應用程式專案時,於"附加資訊"對話方塊中選取 .NET Framework 5.0 作為目標框架
如何安裝 IronXL CSV 程式庫?
既然您已設定好專案,接下來讓我們加入 IronXL C# 程式庫。 請依照以下步驟安裝 IronXL:
- 在 Visual Studio 中,前往"工具"選單。 此時會出現一個下拉式選單——請從此選單中選擇"NuGet 套件管理員"。 IronXL 亦可透過 Docker 容器安裝,以支援容器化應用程式。
-
在 NuGet 套件管理員中,從側邊選單選擇"管理解決方案的 NuGet 套件"。
Visual Studio 工具選單顯示套件管理器選項,包括套件管理器控制台、管理解決方案的 NuGet 套件和套件管理器設定。 請透過 Visual Studio 的"工具"選單開啟 NuGet 套件管理員,以安裝用於在 C# 中寫入 CSV 檔案的套件
-
會開啟一個新視窗。 前往"瀏覽"分頁,並在搜尋欄中輸入"IronXL"。 你會看到 IronXL 套餐清單; 選擇最新版本並點擊"安裝"按鈕。 此函式庫支援多種操作,包括儲存格格式設定、公式編輯及圖片處理。
NuGet 套件管理器顯示 IronXL.Excel 套件(版本 2023.11.12)可供安裝,下載量為 592K。 Visual Studio 中的 NuGet 套件管理員介面,顯示 IronXL.Excel 套件已準備就緒,可進行安裝。 請注意最新穩定版本(2023.11.12)以及該套件的熱門程度——下載量已超過 59.2 萬次
如何使用 IronXL 將資料寫入 CSV 檔案?
讓我們使用 IronXL程式庫將資料寫入 CSV 檔案。 在本節中,我們將建立一個新的 CSV 檔案並填入資料。 以下範例使用 IronXL 在 CSV 檔案中建立一份簡單的收據。讓我們逐步解析這段程式碼。
為什麼我需要導入 IronXL 和 System.Linq?
using IronXL;
using System.Linq;
// This is the main class where execution starts.
public class Program {
static void Main() {
// Main method where all logic is executed
}
}
using IronXL;
using System.Linq;
// This is the main class where execution starts.
public class Program {
static void Main() {
// Main method where all logic is executed
}
}
Imports IronXL
Imports System.Linq
' This is the main class where execution starts.
Public Class Program
Shared Sub Main()
' Main method where all logic is executed
End Sub
End Class
這些程式碼從 IronXL 庫匯入處理 Excel 檔案所需的類別和功能,以及來自 System.Linq 命名空間的 LINQ 擴充方法。 在處理範圍以及對儲存格資料執行數學運算時,LINQ 特別有用。
如何建立 WorkBook 和 WorkSheet?
// Create a new workbook. This serves as the container for all worksheets.
WorkBook workBook = WorkBook.Create();
// Create a new worksheet within the workbook named "Receipt".
WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");
// Create a new workbook. This serves as the container for all worksheets.
WorkBook workBook = WorkBook.Create();
// Create a new worksheet within the workbook named "Receipt".
WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");
' Create a new workbook. This serves as the container for all worksheets.
Dim workBook As WorkBook = WorkBook.Create()
' Create a new worksheet within the workbook named "Receipt".
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Receipt")
此程式碼會建立一個新的 Excel 工作簿 (WorkBook) 和該工作簿中的一個名為"Receipt"的工作表 (WorkSheet)。 您也可以載入現有的試算表,或開啟特定的工作表進行修改。 若遇到更複雜的狀況,請考慮在單一工作簿中管理多個工作表。
何時該在 CSV 檔案中加入標題?
// Set the header row for columns. Headers added for better understanding of data.
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Price";
// Set the header row for columns. Headers added for better understanding of data.
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Price";
' Set the header row for columns. Headers added for better understanding of data.
workSheet("A1").Value = "Product"
workSheet("B1").Value = "Price"
這些程式碼行設定了工作表第一行中各列的標題行,並為每一列新增標籤。 標題對於資料組織至關重要,可透過儲存格格式設定選項(如字體大小、邊框及對齊方式)來調整樣式。 您亦可套用背景顏色與圖案,使標題更為醒目。
添加資料列的最佳方法是什麼?
// Populate worksheet with product data and their respective prices.
workSheet["A2"].Value = "Item 1";
workSheet["B2"].DoubleValue = 20.10;
workSheet["A3"].Value = "Item 2";
workSheet["B3"].DoubleValue = 15.50;
workSheet["A4"].Value = "Item 3";
workSheet["B4"].DoubleValue = 10.25;
// Populate worksheet with product data and their respective prices.
workSheet["A2"].Value = "Item 1";
workSheet["B2"].DoubleValue = 20.10;
workSheet["A3"].Value = "Item 2";
workSheet["B3"].DoubleValue = 15.50;
workSheet["A4"].Value = "Item 3";
workSheet["B4"].DoubleValue = 10.25;
' Populate worksheet with product data and their respective prices.
workSheet("A2").Value = "Item 1"
workSheet("B2").DoubleValue = 20.10
workSheet("A3").Value = "Item 2"
workSheet("B3").DoubleValue = 15.50
workSheet("A4").Value = "Item 3"
workSheet("B4").DoubleValue = 10.25
這些行提供了關於三項產品的資訊,包括其名稱與價格。 若需執行批量操作,您可能需要一次插入多行或複製現有儲存格。 處理大型資料集時,建議考慮使用 DataTable 整合功能以實現高效資料操作。
如何計算 CSV 檔案中的數值?
// Define the range for price values to be summed.
var range = workSheet["B2:B4"];
// Calculate the sum of prices.
decimal sum = range.Sum();
// Define the range for price values to be summed.
var range = workSheet["B2:B4"];
// Calculate the sum of prices.
decimal sum = range.Sum();
' Define the range for price values to be summed.
Dim range = workSheet("B2:B4")
' Calculate the sum of prices.
Dim sum As Decimal = range.Sum()
使用 LINQ,這段程式碼計算儲存格 B2 到 B4 中的價格總和。總和儲存在 sum 變數中。 IronXL 支援多種聚合函數,包括平均值、最小值和最大值。 若需進行更複雜的計算,您可直接在儲存格中使用 Excel 公式。
為什麼要在 WorkSheet 中更新計算值?
// Display the sum in the console.
System.Console.WriteLine(sum);
// Update the total price in the worksheet.
workSheet["B5"].Value = sum;
// Display the sum in the console.
System.Console.WriteLine(sum);
// Update the total price in the worksheet.
workSheet["B5"].Value = sum;
' Display the sum in the console.
System.Console.WriteLine(sum)
' Update the total price in the worksheet.
workSheet("B5").Value = sum
計算結果將輸出至控制台,並同時填入工作表的 B5 儲存格中。 此方法可確保資料的一致性,並能根據計算值進行條件格式化。 您亦可添加註解以說明計算方式或提供更多背景資訊。
哪種方法可將工作簿儲存為 CSV 格式?
// Save the workbook as a CSV file named "receipt.csv".
workBook.SaveAs("receipt.csv");
// Save the workbook as a CSV file named "receipt.csv".
workBook.SaveAs("receipt.csv");
' Save the workbook as a CSV file named "receipt.csv".
workBook.SaveAs("receipt.csv")
最後,整個工作簿保存為名為"receipt.csv"的 CSV 檔案。 IronXL 會自動處理從 Excel 格式轉換為 CSV 的流程。您也可以儲存為 JSON 或 XML 等其他格式,以因應不同的整合情境。 在生產環境中,請考慮啟用密碼保護以確保敏感資料的安全。
以下是完整程式碼範例,用以展示所有討論的概念:
using IronXL;
using System.Linq;
public class Program
{
static void Main()
{
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");
// Add headers with formatting
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Price";
// Style the header row
workSheet["A1:B1"].Style.Font.Bold = true;
workSheet["A1:B1"].Style.FillPattern = IronXL.Styles.FillPattern.Solid;
workSheet["A1:B1"].Style.BackgroundColor = "#CCCCCC";
// Add product data
workSheet["A2"].Value = "Item 1";
workSheet["B2"].DoubleValue = 20.10;
workSheet["A3"].Value = "Item 2";
workSheet["B3"].DoubleValue = 15.50;
workSheet["A4"].Value = "Item 3";
workSheet["B4"].DoubleValue = 10.25;
// Calculate and add total
var priceRange = workSheet["B2:B4"];
decimal total = priceRange.Sum();
workSheet["A5"].Value = "Total";
workSheet["B5"].Value = total;
workSheet["A5:B5"].Style.Font.Bold = true;
// Apply number formatting to prices
workSheet["B2:B5"].FormatString = "$#,##0.00";
// Save as CSV file
workBook.SaveAs("receipt.csv");
Console.WriteLine($"Receipt saved successfully. Total: ${total:F2}");
}
}
using IronXL;
using System.Linq;
public class Program
{
static void Main()
{
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");
// Add headers with formatting
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Price";
// Style the header row
workSheet["A1:B1"].Style.Font.Bold = true;
workSheet["A1:B1"].Style.FillPattern = IronXL.Styles.FillPattern.Solid;
workSheet["A1:B1"].Style.BackgroundColor = "#CCCCCC";
// Add product data
workSheet["A2"].Value = "Item 1";
workSheet["B2"].DoubleValue = 20.10;
workSheet["A3"].Value = "Item 2";
workSheet["B3"].DoubleValue = 15.50;
workSheet["A4"].Value = "Item 3";
workSheet["B4"].DoubleValue = 10.25;
// Calculate and add total
var priceRange = workSheet["B2:B4"];
decimal total = priceRange.Sum();
workSheet["A5"].Value = "Total";
workSheet["B5"].Value = total;
workSheet["A5:B5"].Style.Font.Bold = true;
// Apply number formatting to prices
workSheet["B2:B5"].FormatString = "$#,##0.00";
// Save as CSV file
workBook.SaveAs("receipt.csv");
Console.WriteLine($"Receipt saved successfully. Total: ${total:F2}");
}
}
Imports IronXL
Imports System.Linq
Public Class Program
Shared Sub Main()
' Create a new workbook and worksheet
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Receipt")
' Add headers with formatting
workSheet("A1").Value = "Product"
workSheet("B1").Value = "Price"
' Style the header row
workSheet("A1:B1").Style.Font.Bold = True
workSheet("A1:B1").Style.FillPattern = IronXL.Styles.FillPattern.Solid
workSheet("A1:B1").Style.BackgroundColor = "#CCCCCC"
' Add product data
workSheet("A2").Value = "Item 1"
workSheet("B2").DoubleValue = 20.1
workSheet("A3").Value = "Item 2"
workSheet("B3").DoubleValue = 15.5
workSheet("A4").Value = "Item 3"
workSheet("B4").DoubleValue = 10.25
' Calculate and add total
Dim priceRange = workSheet("B2:B4")
Dim total As Decimal = priceRange.Sum()
workSheet("A5").Value = "Total"
workSheet("B5").Value = total
workSheet("A5:B5").Style.Font.Bold = True
' Apply number formatting to prices
workSheet("B2:B5").FormatString = "$#,##0.00"
' Save as CSV file
workBook.SaveAs("receipt.csv")
Console.WriteLine($"Receipt saved successfully. Total: ${total:F2}")
End Sub
End Class
總而言之,此程式碼使用 IronXL 在 Excel 工作表中建立一份基本收據,計算總金額,將結果 PRINT 至控制台,並將工作簿儲存為 CSV 檔案。收據包含"產品"和"價格"欄位,並根據各項目的單價計算總金額。 其他功能(如自動調整欄位寬度與固定視窗區塊)可進一步提升最終輸出品質。
!一個名為"receipt.csv"的CSV檔案在文字編輯器中打開,顯示一張簡單的收據,包含三件商品、它們的價格以及總計45.85。 以下為 C# 程式的範例輸出,該程式將收據資料寫入 CSV 檔案,內容包含標題列以及以逗號分隔的產品與價格值
關鍵要點是什麼?
這篇詳盡的文章強調了在 C# 中寫入 CSV 檔案的重要性,並透過 IronXL程式庫說明其操作流程。 此說明強調這項技能在各類以資料為中心的應用程式中不可或缺的基礎性,並展現 IronXL 在 C# 生態系統中簡化與優化資料處理任務的能力。 從專案設定到使用 IronXL 建立收據並儲存為 CSV 檔案的逐步操作指南,將協助您實際掌握 C# 與 Excel 操作之間的無縫整合。
使用 IronXL 進行 CSV 操作的主要優勢包括:
- 簡易性:直覺式的 API,其設計邏輯與 Excel 的儲存格參照方式相仿
- 靈活性:支援多種資料類型與數字格式
- 效能:高效處理大型資料集
- 相容性:支援跨平台及各版本的 .NET
- 豐富功能:除了 CSV 寫入功能外,還支援圖表、命名範圍及表格
憑藉其多功能性與高效能,IronXL 成為 C# 開發者提升處理與匯出普遍使用的 CSV 格式資料能力的寶貴工具,使其在各種軟體開發情境中成為不可或缺的資產。
IronXL 提供了一套解決方案,可透過程式化方式處理所有與 Excel 相關的任務,無論是公式計算、字串排序、截取、尋找與替換、合併與拆分,還是儲存檔案等。 您亦可設定儲存格資料格式、處理超連結,甚至可對行與列進行分組與取消分組,以提升組織效率。
有關寫入 CSV 檔案的完整教程,請造訪此部落格。 創建 CSV 檔案的程式碼範例可以在以下部落格中找到。 其他資源包含關於讀取 CSV 檔案以及將 DataTable 轉換為 CSV 的教學指南。
IronXL 提供免費試用,方便您評估其功能。 如果您發現它對您的專案有用,您可以從 $799 購買許可證。 此函式庫亦提供詳盡的文件、程式碼範例及 API 參考,協助您快速上手。
常見問題解答
如何在不使用互操作的情況下在 C# 中編寫 CSV 文件?
您可以利用 IronXL 庫在 C# 中編寫 CSV 文件而無需互操作。IronXL 允許您創建工作簿和工作表,添加數據,並使用其內置方法將其直接保存為 CSV 文件。
IronXL 在編寫 CSV 文件方面比 CSVHelper 有什麼優勢?
IronXL 提供了比僅僅是 CSV 編寫更廣泛的功能,如公式計算、單元格格式化和多種 Excel 格式的導出,為開發人員提供了更全面的解決方案。
如何在 C# 項目中開始使用 IronXL?
要開始使用 IronXL,您需要通過 Visual Studio 中的 NuGet 套件管理器安裝它。創建一個新的 C# 項目,導航到“工具”,選擇“NuGet 套件管理器”,搜索“IronXL”並安裝它。
IronXL 除了撰寫 CSV 外,還能用來處理 Excel 文件嗎?
是的,IronXL 能夠處理一系列與 Excel 相關的任務,如讀取和寫入 Excel 文件、執行公式計算以及跨多個工作表管理數據。
如何使用 IronXL 在 C# 中向工作表添加數據?
要使用 IronXL 向工作表添加數據,請使用其標識符訪問單個單元格,然後使用 Value 屬性分配值。然後您可以將工作表以所需格式保存。
如何使用 IronXL 將工作簿保存為 CSV 文件?
在 IronXL 中創建並填充您的工作簿和工作表之後,您可以使用 SaveAs 方法將其保存為 CSV 文件,指定文件路徑和格式。
IronXL 是否提供試用版供評估?
是的,IronXL 提供免費的試用版,允許開發人員在購買前探索和評估其功能。
如何使用 IronXL 計算工作表中數字的總和?
您可以使用 IronXL 的 LINQ 表達式來計算工作表中的數字總和,通過定義範圍的單元格進行求和,利用該庫與 C# 的 LINQ 表達式的兼容性。
在使用 IronXL 在 C# 中撰寫 CSV 文件時,一些常見問題是什麼?
常見問題可能包括文件路徑或權限錯誤、數據格式不匹配或缺失數據字段。適當的錯誤處理和驗證可以幫助減輕這些問題。
IronXL 是否能夠在 C# 專案中高效地處理大量數據集?
是的,IronXL 被設計用以高效處理大量數據集,使開發人員能夠讀取、寫入和操作大範圍的 Excel 文件而無明顯性能滯後。


