如何在 C# 中撰寫 CSV 文件
若要在C#中寫入CSV文件,使用IronXL程式庫來建立一本工作簿,通過像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操作的最佳選擇?
IronXL是C#開發者需將資料寫入CSV文件時的一個高效解決方案,與CSVHelper NuGet包相比具有優勢。 在當今的軟體開發環境中,處理和操作資料的能力至關重要,而IronXL則以其專為C#設計的穩健工具集提供了解決方案。
該程式庫在幾個重要領域中表現出色:
- 跨平台相容性:可無縫運行於Windows, Linux和macOS
- 無依賴性:不同於傳統的Interop解決方案,IronXL不需要安裝Excel
- 性能:針對處理大型資料集經過優化,具有高效記憶體使用
- 多樣性:支持多種文件格式,包括XLSX, XLS, TSV, JSON和XML
這篇文章探索了使IronXL對於尋求簡化CSV文件寫入過程的C#開發者而言成為極佳選擇的特性和方法,兼具簡單性與準確性。 無論您是在構建ASP.NET應用程式,使用Blazor,還是開發.NET MAUI應用程式,IronXL都提供了一致且可靠的功能。
我如何建立一個新的Visual Studio專案用於CSV操作?
要開始使用IronXL程式庫,您需要建立一個新的Visual Studio C#專案或載入現有專案。 以下是如何在Visual Studio中建立新專案的方法:
-
打開Visual Studio並導航到"文件"選單。 您將看到一個下拉選單; 從這個選單中選擇"新建"。 此操作將顯示另一個側選單。
圖1:Visual Studio文件選單中突出顯示"新建 > 專案",顯示用於CSV文件操作建立新C#專案的第一步 -
在側選單中找到並點擊"專案"。 這會打開一個新窗口。 使用搜索欄查找"控臺應用"。 選擇與C#相關的選項,並點擊下一步按鈕。 控臺應用模板非常適合展示CSV操作,並且可以輕鬆適應於web應用或雲端部署。
圖2:在Visual Studio中建立新Console應用程式專案,支持跨平台.NET Core -
接下來顯示一個配置窗口。 輸入專案名稱,指定專案位置,然後點擊下一步按鈕。 考慮以專用文件夾結構組織您的專案,尤其是在處理多個Excel文件或資料庫整合時。
圖3:在Visual Studio中配置新專案設置,包括專案名稱、位置和方案選項 -
最後一個窗口將顯示。 選擇目標框架,然後點擊建立按鈕以開始建立專案。 為了與IronXL功能(如條件格式化和圖表建立)最佳相容,建議使用.NET 6.0或以後版本。
圖4:在建立新Console應用程式專案時,在"附加資訊"對話框中選擇.NET 5.0作為目標框架
我如何安裝IronXL CSV程式庫?
現在您已經設置了專案,我們來新增IronXL C#程式庫。 請按以下步驟安裝IronXL:
- 在Visual Studio中,轉到工具選單。 下拉選單出現,從中選擇NuGet包管理器。 IronXL也可以通過Docker容器安裝用於容器化應用程式。
-
在NuGet包管理器中,從側選單中選擇為解決方案管理NuGet包。
通過Visual Studio中的工具選單進入NuGet包管理器以安裝用於在C#中寫入CSV文件的包 -
一個新窗口打開。 轉到"瀏覽"選項卡,然後在搜索欄中輸入"IronXL"。 您將看到一個IronXL包的清單; 選擇最新的一個並點擊安裝按鈕。 該程式庫支持單元格格式化,公式編輯,以及圖像處理等各種操作。
Visual Studio中的NuGet包管理器介面顯示IronXL.Excel包可供安裝。 注意最新穩定版本(2023.11.12)和該包超過592K的下載量
安裝後,若您在生產環境中使用IronXL,請確保您的許可證金鑰已正確配置。 對於開發和測試,您可以使用免費試用。
我如何使用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在處理範圍和對單元格資料進行數學運算時特別有用。
我如何建立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工作簿(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
綜上所述,這段程式碼建立了一個在Excel工作表中使用IronXL的基本收據,計算總價格,將其列印到控臺,並將工作簿保存為CSV文件。收據包括"產品"和"價格"列,基於單項價格計算總價格。 其他功能如自動調整欄位大小和凍結窗格可以增強最終輸出效果。

一個C#程式生成的範例輸出,將收據資料寫入CSV文件,包括標題行和產品及價格的逗號分隔值
關鍵要點是什麼?
這篇全面的文章著重於在C#中寫CSV文件的重要性,並闡述了使用IronXL程式庫的過程。 它強調了該技能在各種資料驅動應用程式中的基本性,並展示了IronXL簡化和優化資料操作任務的能力,尤其是在C#的生態系統內。 從項目設置到使用IronXL建立收據並將其保存為CSV文件的逐步方法,為您提供了對C#與Excel操作無縫整合的實際理解。
使用IronXL進行CSV操作的主要優勢包括:
- 簡單性:直觀的API,模仿Excel的單元格參考
- 靈活性:支持各種資料型別和數字格式
- 性能:高效地處理大型資料集
- 相容性:跨平臺和.NET版本運行
- 豐富的功能:除了寫CSV,還支持圖表,命名範圍以及表格
憑藉多樣性和效率,IronXL成為尋求增強資料處理能力並以廣泛使用的CSV格式導出資料的C#開發者的重要工具,成為不同軟體開發場景中的關鍵資產。
IronXL提供了一個解決方案,使得無論是公式計算,字串排序,修剪,查找與替換,合併和取消合併,保存文件等所有Excel相關任務都能夠程式化地完成。 您還可以設置單元格資料格式,使用超連結,甚至對行和列進行分組和取消分組以更好地組織。
想要完整的CSV文件寫入教程,請存取這裡的部落格。 建立CSV文件的程式碼範例可以在以下部落格中找到。 其他資源包括關於讀取CSV文件和將DataTable轉換為CSV的教程。
IronXL提供免費試用,讓您可以評估其功能。 如果您發現這對於您的專案有用,您可以從$999購買授權。 該程式庫還提供了全面的文件,程式碼範例和API參考幫助您快速入門。
常見問題
如何在 C# 中不使用 Interop 寫入 CSV 檔案?
您可以使用 IronXL 程式庫在 C# 中寫入 CSV 檔案,而無需 Interop。IronXL 允許您建立工作簿和工作表、新增資料,並使用其內建方法直接保存為 CSV 檔案。
IronXL 在寫入 CSV 檔案方面比 CSVHelper 有哪些優勢?
IronXL 提供了比僅僅寫入 CSV 更多的功能,例如公式運算、單元格格式設定,以及以各種 Excel 格式導出,為開發者提供更全面的解決方案。
如何在 C# 專案中開始使用 IronXL?
要開始使用 IronXL,您需要通過 Visual Studio 中的 NuGet Package Manager 進行安裝。建立一個新的 C# 專案,導航至 '工具',選擇 'NuGet Package Manager',搜尋 'IronXL',並進行安裝。
IronXL 可以用來操作 Excel 檔案而不僅僅是寫入 CSV 嗎?
是的,IronXL 能夠處理廣泛的 Excel 相關任務,例如讀取和寫入 Excel 檔案,執行公式計算,以及管理多個工作表之間的資料。
如何使用 IronXL 在 C# 中向工作表新增資料?
要使用 IronXL 向工作表新增資料,您可以通過其標識符存取個別單元格,並使用 Value 屬性分配值。然後您可以按您期望的格式保存工作表。
如何使用 IronXL 將工作簿保存為 CSV 檔案?
在 IronXL 中建立並填充您的工作簿和工作表後,您可以使用 SaveAs 方法保存為 CSV 檔案,指定檔案路徑和格式。
IronXL 是否有試用版本可供評估?
是的,IronXL 提供免費試用版本,允許開發者在購買之前探索和評估其功能。
如何使用 IronXL 計算工作表中的數字總和?
using IronXL,您可以通過使用 LINQ 將一個定義範圍的單元格總和計算來計算工作表中的數字總和,利用該程式庫與 C# 的 LINQ 表達式的相容性。
using IronXL 在 C# 中寫入 CSV 檔案時的一些常見問題是什麼?
常見問題可能包括檔案路徑錯誤或權限問題、資料格式不匹配或缺少資料欄位。適當的錯誤處理和驗證可以幫助減少這些問題。
IronXL 能夠有效處理 C# 專案中的大型資料集嗎?
是的,IronXL 設計用來高效地處理大型資料集,使開發者能夠讀取、寫入和操作龐大的 Excel 檔案,而不會有顯著的性能延遲。




