跳過到頁腳內容
使用 IRONXL

如何在 C# 中撰寫 CSV 文件中的數據

本文將探討如何使用IronXL寫入CSV文件。

IronXL 庫

IronXL 是一個 .NET Excel 庫,為創建、讀取和編輯 C# 應用程式中的電子表格文件提供了全面的功能。 在性能和輸出準確性方面表現出色。 它支持各種電子表格工作簿文件格式,如XLS、XLSX、XLSM、CSV 和 TSV。此外,它還允許您從 Excel 文件中保存或匯出數據到 CSV、JSON、HTML、二進制、字節數組、DataSet 或 DataTable 等格式。

使用 IronXL,開發人員可以無縫地處理工作表和單元格範圍,提供一種優雅的數據操作方法。 它允許輕鬆編輯公式,並支持在工作表中重新計算公式。 數據排序基於範圍、列或行是直接的。 You can also modify layouts by freezing panes, auto-sizing rows/columns, and adding/removing rows/columns.

IronXL 提供使用者密碼保護 Excel 文件並設置編輯權限的能力。 此外,它提供了從 Excel 工作表中添加、移除和提取圖像的功能。 該庫包括廣泛的 Excel 函數,支持各種單元格數據格式。 這使得 IronXL 成為處理 Excel 文件的最直觀的 API 之一。

IronXL 的一個顯著優勢是無需在計算機上安裝 Microsoft Excel 或 Office Interop 依賴。它是一個自包容的多平台解決方案,兼容.NET 版本 7、6 和 5. 它也支持 .NET Core 2 和 3 及標準 2 版本。 對於 Excel 電子表格的工作,IronXL 與 .NET Framework 4.5 和更高版本兼容。

創建控制台應用程序

建議使用 Visual Studio 的最新版本來創建應用程式開始。 Visual Studio 是 C# 開發的官方 IDE,您必須已安裝。 如果未安裝,可以從Microsoft Visual Studio 網站下載。

以下步驟將創建一個名為 "DemoApp" 的新項目。

  1. 打開 Visual Studio,然後點擊 "Create a New Project"。

如何在 C# 中寫入 CSV 文件,圖1:打開 Visual Studio 打開 Visual Studio

  1. 選擇控制台應用程式並點擊“下一步”。

如何在 C# 中寫入 CSV 文件,圖2:在 Visual Studio 中創建新項目 在 Visual Studio 中創建一個新項目

  1. 設置項目名稱

如何在 C# 中寫入 CSV 文件,圖3:配置您的新項目 配置您的新項目

  1. 選擇 .NET 版本。 選擇穩定版本 .NET 6.0。

如何在 C# 中寫入 CSV 文件,圖4:選擇 .NET Framework 選擇 .NET Framework

安裝 IronXL 庫

一旦項目創建完成,IronXL 庫需要安裝到項目中才能使用。 按照以下步驟安裝它。

  1. 從解決方案資源管理器或工具中打開 NuGet 包管理器。

如何在 C# 中寫入 CSV 文件,圖5:導航到 NuGet 包管理器 導航到 NuGet 套件管理器

  1. 瀏覽 IronXL 庫並選擇當前項目。 點擊安裝。

如何在 C# 中寫入 CSV 文件,圖6:在 NuGet 包管理器用戶界面中搜索並安裝 IronXL 包 在 NuGet 包管理器 UI 中搜索並安裝 IronXL 包

Program.cs 文件的頂部添加以下命名空間:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

在 C# 中創建新工作簿

IronXL 提供創建空白工作簿的功能。 工作簿是包含多個工作表的電子表格。 數據存儲在單元格中。 CSV 也看起來像電子表格,但具有 CSV 文件擴展名。

// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
' Creates a new instance of WorkBook Spreadsheet
Dim workBook As WorkBook = WorkBook.Create()
$vbLabelText   $csharpLabel

現在,讓我們在WorkBook中創建一個工作表。 有多種方法可以在工作簿中創建工作表。

// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;

// Creates a worksheet with the name "Sheet1"
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;

// Creates a worksheet with the name "Sheet1"
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
' Adds a default sheet to the workbook
Dim defaultSheet As WorkSheet = workBook.DefaultWorkSheet

' Creates a worksheet with the name "Sheet1"
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

如果您想為現有工作簿添加更多工作表,則使用 CreateWorkSheet 方法。

注意: 如果 CSV 文件已經存在,您可以使用 WorkBook.LoadCSV 方法。 您可以查看此代碼示例頁面以加載現有的CSV文件。

寫入數據到 WorkSheet

使用 IronXL 寫入 CSV 文件很容易。 它提供 Excel 特性來將數據寫入 CSV。可以使用單元格參考將值添加到指定位置。 在此處,我將使用 foreach 迴圈添加一些員工的記錄。

// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
' Initialize an array of employee names
Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

' Starting row for data entry
Dim i As Integer = 2

' Setting header titles for the columns
sheet("A1").Value = "ID"
sheet("B1").Value = "Name"
sheet("C1").Value = "Salary"

' Populate each row with employee data
For Each employee In employeeNames
	' Set values for ID, Name, and Salary
	sheet("A" & i).Value = i
	sheet("B" & i).Value = employee
	sheet("C" & i).Value = i * 1000
	i += 1
Next employee
$vbLabelText   $csharpLabel

在上面的代碼示例中,創建了一個 employeeNames 的數組,並將第一行設置為標題:ID、名稱、薪水。 還初始化了一個變量 i 值為2,這將從標題下的第二行開始輸入記錄。 foreach 迴圈處理列表中的每個員工,並將它們與 ID 和薪水值一起添加到當前行。 在迴圈完成之前,i 增加以移動到下一行以存儲下一條記錄。

保存數據到 CSV 文件

最後一步是保存 CSV 文件。IronXL 提供方法 SaveAsCsv 將工作簿保存為 CSV 文件。此方法的第一個參數是 CSV 文件名,第二個是分隔符。

// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
' Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",")
$vbLabelText   $csharpLabel

完整的代碼如下:

using System;
using IronXL;

class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
using System;
using IronXL;

class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
Imports System
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Create a new workbook and worksheet
		Dim workBook As WorkBook = WorkBook.Create()
		Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

		' Initialize an array of employee names
		Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

		' Starting row for data entry
		Dim i As Integer = 2

		' Setting header titles for the columns
		sheet("A1").Value = "ID"
		sheet("B1").Value = "Name"
		sheet("C1").Value = "Salary"

		' Populate each row with employee data
		For Each employee In employeeNames
			' Set values for ID, Name, and Salary
			sheet("A" & i).Value = i
			sheet("B" & i).Value = employee
			sheet("C" & i).Value = i * 1000
			i += 1
		Next employee

		' Save the modified workbook as a CSV file with a specified delimiter
		workBook.SaveAsCsv("sample.csv", ",")
	End Sub
End Class
$vbLabelText   $csharpLabel

輸出

如何在 C# 中寫入 CSV 文件,圖7:輸出 CSV 文件 輸出 CSV 文件

總結

本文提出了一種使用 IronXL 在 C# 中寫入 CSV 文件的簡單方法。 IronXL 還提供無痛苦處理現有 CSV 文件的便利。 它還允許您寫入 CSV 文件、創建新的 Excel 文件,並以簡單的語法向其寫入數據。 IronXL 還可以用於在沒有安裝 Microsoft Office 的情況下讀取和寫入 Excel 文件。 對於不同電子表格格式之間的轉換,您可以查看此代碼示例頁面

IronXL 免費供開發使用,並且可以獲得商業用途的授權。 您還可以嘗試 IronXL 的免費試用版以供商業使用。

常見問題解答

如何在 C# 中將數據寫入 CSV 文件?

您可以使用 IronXL 的 `SaveAsCsv` 方法將數據匯出到 C# 中的 CSV 文件。首先,創建一個工作簿和工作表,將數據寫入單元格,然後使用 `workBook.SaveAsCsv("filename.csv", ",");` 將數據保存為 CSV 文件。

創建一個用於在 C# 中寫入 CSV 文件的控制台應用程式的步驟是什麼?

要創建一個用於寫入 CSV 文件的控制台應用程式,請在 Visual Studio 中設置新項目,選擇適當的 .NET 版本,並通過 NuGet 包管理器安裝 IronXL。然後,使用 IronXL 創建工作簿,將數據添加到工作表,並保存為 CSV。

我可以不使用 Microsoft Excel 寫數據到 CSV 文件嗎?

是的,您可以通過使用 IronXL 不需要 Microsoft Excel 來將數據寫入 CSV 文件。它允許以編程方式操作 Excel 和 CSV 文件,而不需要安裝 Excel。

如何在 Visual Studio 專案中安裝 IronXL?

您可以通過在 Visual Studio 中打開 NuGet 包管理器,搜索 'IronXL',然後點擊 'Install' 將其添加到您的項目中來安裝 IronXL。這將使您能夠使用 IronXL 的功能來處理 Excel 和 CSV 文件。

IronXL 支持哪些文件格式的匯出?

IronXL 支持匯出數據到多種格式,包括 CSV、JSON、HTML、二進制、字節數組、DataSet 和 DataTable,可滿足不同數據處理需求的靈活性。

IronXL 與不同的 .NET 版本兼容嗎?

是的,IronXL 與多個 .NET 版本兼容,包括 .NET Core 2 和 3,以及 .NET 5、6 和 7,允許開發者在不同的開發環境中靈活運用。

我可以在商業項目中使用 IronXL 嗎?

是的,IronXL 可以為商業用途進行許可。它還提供免費試用版供開發使用,讓開發者在承擔商業許可前測試其功能。

如何使用 IronXL 在 C# 中創建新的工作簿和工作表?

您可以使用 `WorkBook.Create()` 初始化一個工作簿對象,然後添加新的工作表來創建新的工作簿和工作表。這樣您可以開始將數據寫入工作表。

IronXL 需要任何 Office Interop 依賴項嗎?

不,IronXL 是一個獨立的庫,不需要任何 Office Interop 依賴項,使其易於在不同平台的應用程式中使用和部署。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。