跳至頁尾內容
USING IRONXL

如何在 C# 中撰寫 CSV 文件中的資料

這篇文章將探討如何使用IronXL撰寫CSV文件。

IronXL程式庫

IronXL是一個.NET Excel程式庫,提供建立、讀取和編輯C#應用程式中的試算表文件的完整功能。 它在性能和輸出準確性方面表現出色。 它支持各種試算表工作簿文件格式,如XLS、XLSX、XLSM、CSV和TSV。此外,它還允許您從Excel文件中保存或導出資料為格式如CSV、JSON、HTML、二進制、字節陣列、DataSet或DataTable。

使用IronXL,開發者可以無縫地處理工作表和單元格範圍,提供一種優雅的資料操作方法。 它允許輕鬆編輯公式,並便於在一個工作表中重新計算公式。 基於範圍、列或行對資料排序非常簡單。 您還可以透過凍結窗格自動調整行/列大小新增/移除行/列來修改佈局。

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然後點擊"建立新專案"。

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

  2. 選擇控制台應用程式然後點擊"下一步"。

    如何在C#中撰寫CSV文件,圖2:在Visual Studio中建立新專案 在 Visual Studio 中建立一個新專案

  3. 設置專案名稱

    如何在C#中撰寫CSV文件,圖3:配置您的新專案 配置您的新專案

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

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

安裝IronXL程式庫

專案建立後,需要在專案中安裝IronXL程式庫以便使用。 按照以下步驟安裝。

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

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

  2. 瀏覽IronXL程式庫並選擇當前專案。 點擊安裝。

    如何在C#中撰寫CSV文件,圖6:在NuGet包管理器UI中搜尋和安裝IronXL包 在NuGet包管理器UI中搜尋和安裝IronXL包

Program.cs文件頂部新增以下命名空間:

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

Create a New Workbook in 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、Name、Salary。 一個變數i也用值2初始化,將從標題下方的第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`方法將資料匯出到CSV文件。在C#中,首先建立工作簿和工作表,將資料寫入單元格,然後使用`workBook.SaveAsCsv("filename.csv", ",");`將資料保存為CSV文件。

建立用於寫入CSV文件的控制台應用程式的步驟是什麼?

要建立用於寫入CSV文件的控制台應用程式,請在Visual Studio中設置一個新專案,選擇適合的.NET版本,並通過NuGet Package Manager安裝IronXL。然後使用IronXL建立工作簿,將資料新增到工作表中,並將其保存為CSV。

我可以不使用Microsoft Excel將資料寫入CSV文件嗎?

是的,您可以使用IronXL不使用Microsoft Excel將資料寫入CSV文件。它允許程式化地操作Excel和CSV文件,不需要安裝Excel。

如何在Visual Studio項目中安裝IronXL?

您可以通過在Visual Studio中打開NuGet Package Manager,搜索'IronXL'並點擊'安裝'來將其新增到您的專案中。這將使您能夠使用IronXL的功能來處理Excel和CSV文件。

IronXL支持哪種文件格式匯出?

IronXL支持將資料匯出到多種格式,包括CSV、JSON、HTML、Binary、Byte Array、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依賴,這使得它在跨不同平台的應用程式中易於使用和部署。

Curtis Chau
技術作家

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

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

Iron 支援團隊

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