如何在 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"的新專案。
-
打開Visual Studio然後點擊"建立新專案"。
Open Visual Studio -
選擇控制台應用程式然後點擊"下一步"。
在 Visual Studio 中建立一個新專案 -
設置專案名稱
配置您的新專案 -
選擇.NET版本。 選擇穩定版本.NET 6.0。
.NET Framework 選擇
安裝IronXL程式庫
專案建立後,需要在專案中安裝IronXL程式庫以便使用。 按照以下步驟安裝。
-
從解決方案資源管理器或工具中打開NuGet包管理器。
導航至NuGet包管理器 -
瀏覽IronXL程式庫並選擇當前專案。 點擊安裝。
在NuGet包管理器UI中搜尋和安裝IronXL包
在Program.cs文件頂部新增以下命名空間:
using IronXL;
using IronXL;
Imports IronXL
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()
現在,讓我們在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")
如果您想在現有工作簿中新增更多工作表,則使用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
在上述程式碼範例中,建立了一個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", ",")
完整的程式碼如下:
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
輸出
輸出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依賴,這使得它在跨不同平台的應用程式中易於使用和部署。




