跳至頁尾內容
USING IRONXL

如何在 C# 中撰寫 CSV 文件

若要在C#中寫入CSV文件,使用IronXL程式庫來建立一本工作簿,通過像workBook.SaveAs("file.csv")儲存-為資料導出提供了一個簡單的方法。

這篇文章展示了如何使用名為IronXL的C#程式庫寫入CSV文件。 IronXL程式庫 提供了全面的解決方案來進行Excel文件操作,不需要安裝Microsoft Office,這使其成為伺服器環境和Azure部署的理想工具。

我如何將資料寫入CSV文件?

  1. 安裝用於寫入CSV文件的C#程式庫。

  2. 使用WorkBook.Create來建立一個新工作簿。

  3. 使用WorkBook.CreateWorkSheet來建立一個工作表。

  4. 使用workSheet["cell name"].Value將數值新增到單元格。

  5. 使用SaveAs方法儲存為CSV。

這些步驟提供了建立電子表格和以各種格式導出資料的基礎。 無論您是處理CSV,XLSX,還是其他受支持的格式,這個過程都是相似的。 對於更複雜的情況,您也可以導入Excel資料在不同的電子表格文件格式之間進行轉換

什麼使IronXL成為CSV操作的最佳選擇?

IronXL是C#開發者需將資料寫入CSV文件時的一個高效解決方案,與CSVHelper NuGet包相比具有優勢。 在當今的軟體開發環境中,處理和操作資料的能力至關重要,而IronXL則以其專為C#設計的穩健工具集提供了解決方案。

該程式庫在幾個重要領域中表現出色:

這篇文章探索了使IronXL對於尋求簡化CSV文件寫入過程的C#開發者而言成為極佳選擇的特性和方法,兼具簡單性與準確性。 無論您是在構建ASP.NET應用程式,使用Blazor,還是開發.NET MAUI應用程式,IronXL都提供了一致且可靠的功能。

我如何建立一個新的Visual Studio專案用於CSV操作?

要開始使用IronXL程式庫,您需要建立一個新的Visual Studio C#專案或載入現有專案。 以下是如何在Visual Studio中建立新專案的方法:

  1. 打開Visual Studio並導航到"文件"選單。 您將看到一個下拉選單; 從這個選單中選擇"新建"。 此操作將顯示另一個側選單。

    Visual Studio文件選單下拉,顯示包括新建、打開、克隆庫和各項目建立選項 圖1:Visual Studio文件選單中突出顯示"新建 > 專案",顯示用於CSV文件操作建立新C#專案的第一步

  2. 在側選單中找到並點擊"專案"。 這會打開一個新窗口。 使用搜索欄查找"控臺應用"。 選擇與C#相關的選項,並點擊下一步按鈕。 控臺應用模板非常適合展示CSV操作,並且可以輕鬆適應於web應用雲端部署

    Visual Studio新專案對話框,顯示選擇了控臺應用模板的C#選項,支持跨平台(Linux, macOS, Windows)及.NET Core框架 圖2:在Visual Studio中建立新Console應用程式專案,支持跨平台.NET Core

  3. 接下來顯示一個配置窗口。 輸入專案名稱,指定專案位置,然後點擊下一步按鈕。 考慮以專用文件夾結構組織您的專案,尤其是在處理多個Excel文件資料庫整合時。

    Visual Studio專案配置對話框,顯示一個新的Console應用名稱為 圖3:在Visual Studio中配置新專案設置,包括專案名稱、位置和方案選項

  4. 最後一個窗口將顯示。 選擇目標框架,然後點擊建立按鈕以開始建立專案。 為了與IronXL功能(如條件格式化圖表建立)最佳相容,建議使用.NET 6.0或以後版本。

    Visual Studio專案建立對話框,顯示 圖4:在建立新Console應用程式專案時,在"附加資訊"對話框中選擇.NET 5.0作為目標框架

我如何安裝IronXL CSV程式庫?

現在您已經設置了專案,我們來新增IronXL C#程式庫。 請按以下步驟安裝IronXL:

  1. 在Visual Studio中,轉到工具選單。 下拉選單出現,從中選擇NuGet包管理器。 IronXL也可以通過Docker容器安裝用於容器化應用程式。
  2. 在NuGet包管理器中,從側選單中選擇為解決方案管理NuGet包。

    Visual Studio工具選單顯示包括包管理器控制台、為解決方案管理NuGet包和包管理器設置等選項 通過Visual Studio中的工具選單進入NuGet包管理器以安裝用於在C#中寫入CSV文件的包

  3. 一個新窗口打開。 轉到"瀏覽"選項卡,然後在搜索欄中輸入"IronXL"。 您將看到一個IronXL包的清單; 選擇最新的一個並點擊安裝按鈕。 該程式庫支持單元格格式化公式編輯,以及圖像處理等各種操作。

    NuGet包管理器顯示IronXL.Excel包,版本2023.11.12可供安裝,顯示592K次下載 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
$vbLabelText   $csharpLabel

這些行從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")
$vbLabelText   $csharpLabel

該程式碼建立了一個新的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"
$vbLabelText   $csharpLabel

這些行為工作表的第一行中的各列設置了標題行,標記了每個列。 標題對於資料組織至關重要,並且可以使用單元格格式化選項例如字體大小,邊框和對齊進行樣式設置。 您還可以應用背景顏色和圖案以使標題突出。

新增資料行的最佳方式是什麼?

// 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
$vbLabelText   $csharpLabel

這些行新增了有關三個項目的資訊,包括它們的名稱和價格。 對於批量操作,您可能需要一次插入多行復制現有單元格。 在處理大型資料集時,考慮使用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()
$vbLabelText   $csharpLabel

使用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
$vbLabelText   $csharpLabel

所計算的總和列印到控臺,並且還新增到工作表的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")
$vbLabelText   $csharpLabel

最後,整個工作簿保存為名為"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
$vbLabelText   $csharpLabel

綜上所述,這段程式碼建立了一個在Excel工作表中使用IronXL的基本收據,計算總價格,將其列印到控臺,並將工作簿保存為CSV文件。收據包括"產品"和"價格"列,基於單項價格計算總價格。 其他功能如自動調整欄位大小凍結窗格可以增強最終輸出效果。

![在文字編輯器中打開的名為'receipt.csv'的CSV文件,顯示一個簡單的收據,其中包含三個項目,它們的價格以及總計45.85](/static-assets/excel/blog/csharp-write-csv-tutorial/csharp-write-csv-tutorial-7.webp)

一個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 檔案,而不會有顯著的性能延遲。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話