如何在 C# 中將資料集轉換為 CSV
以下文章將示範如何將C#資料集轉換成CSV檔案。
IronXL 是處理試算表的絕佳解決方案,不論是CSV格式或Excel檔案。 IronXL對於開發是免費的,易於使用,並提供豐富的功能來處理各種試算表。 它是安全的,並提供高效能。 在繼續之前,讓我們簡單介紹一下IronXL。
IronXL
IronXL是Iron Software 提供的程式庫,使C#開發者可以在.NET應用程式和網站中讀取、生成及編輯Excel(及其他試算表檔案)。
IronXL是在C#及.NET中處理Excel和其他試算表檔案的快速簡便方法。 IronXL可與.NET Framework、.NET Core和Azure完美搭配使用,無需Office Excel Interop。IronXL也不需安裝Microsoft Office或任何其他此類依賴。
現在進入建立並撰寫程式碼以為資料集建立CSV檔的過程。
建立新的Visual Studio專案
打開Visual Studio IDE;建議使用最新版的Visual Studio,但您可以根據自己的喜好使用任何版本。 請注意,建立新專案的步驟可能隨版本不同而有所變化。
如何在C#中將資料集轉換為CSV,圖1:Visual Studio的啟動窗口⟩
Visual Studio的啟動窗口
單擊建立新專案。 將會出現如下所示的新窗口。
如何在C#中將資料集轉換為CSV,圖2:在Visual Studio中建立新專案⟩
在Visual Studio中建立新專案
從列表中選擇您偏好的專案模板。單擊下一步按鈕,將出現如下所示的新窗口。
如何在C#中將資料集轉換為CSV,圖3:配置新建立的專案⟩
配置新建立的專案
命名您的專案,選擇其位置,然後按下下一步按鈕。 將會出現如下所示的新窗口。
如何在C#中將資料集轉換為CSV,圖4:選擇一個.NET Framework版本⟩
選擇一個.NET Framework版本
選擇您的目標.NET Framework。 您可以選擇任何符合您需求的.NET Framework,因為IronXL支持所有.NET Framework。 本教程將使用.NET 7。單擊建立按鈕,將建立一個新專案,如下所示。
如何在C#中將資料集轉換為CSV,圖5:在Visual Studio中的新控制台應用程式⟩
在Visual Studio中的新控制台應用程式
現在,安裝IronXL NuGet Package以便在此應用程式中使用它。
安裝IronXL
打開NuGet Package Manager Console,並輸入以下命令。
Install-Package IronXL.Excel
NuGet Package將被安裝並可以使用,如下所示。
如何在C#中將資料集轉換為CSV,圖6:安裝IronXL套件及其套件依賴⟩
安裝IronXL套件及其套件依賴
現在,讓我們撰寫一些程式碼以將資料集轉換為C#中的CSV檔案。
本範例將從SQL Server資料庫中提取資料。 在從SQL DB獲取資料集後,我們將使用此輸入資料建立一個CSV檔案。
建立資料表
第一步是從SQL中提取資料,但您可以使用任何您喜好的資料來源。
本教程使用以下資料:
如何在C#中將資料集轉換為CSV,圖7:建立一個帶有範例資料的新資料庫⟩
建立一個帶有範例資料的新資料庫
以下是用於建立範例資料的SQL腳本:
USE Test_DB;
CREATE TABLE STUDENT_DATA
(
REG_NUM INT PRIMARY KEY,
FIRST_NAME VARCHAR(30),
LAST_NAME VARCHAR(30),
CLASS VARCHAR(5),
CONTACT_NUM VARCHAR(15)
);
INSERT INTO STUDENT_DATA
VALUES
(123, 'JHON', 'SMITH', '2', '(223) 444-1234'),
(124, 'THOMAS', 'CHARLES', '2', '(332) 555-1235'),
(125, 'WILLIAM', 'RICHARD', '2', '(432) 666-1236'),
(126, 'JAMES', 'BOND', '2', '(543) 777-1237'),
(127, 'CRISTOPHER', 'MICHAL', '2', '(555) 999-1238'),
(128, 'DONALD', 'MARK', '2', '(777) 888-1239');
以下C#程式碼用於將資料表匯出為CSV檔案。
using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;
class Program
{
// Method to retrieve data from SQL database and return as DataTable
public static DataTable GetData()
{
// Define connection string (modify accordingly for your local server)
string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
string query = "SELECT * FROM STUDENT_DATA";
try
{
// Create SQL connection
using SqlConnection conn = new SqlConnection(connString);
// Create SQL command
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
// Create data adapter
using SqlDataAdapter da = new SqlDataAdapter(cmd);
// Query the database and return the result to a data table
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
throw;
}
}
static void Main(string[] args)
{
// Retrieve data and store it in a DataTable
DataTable table = GetData();
// Create a new Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "JOHN";
// Use the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
int rowCount = 1;
// Populate the worksheet with data from the DataTable
foreach (DataRow row in table.Rows)
{
ws[$"A{rowCount}"].Value = row[0].ToString();
ws[$"B{rowCount}"].Value = row[1].ToString();
ws[$"C{rowCount}"].Value = row[2].ToString();
ws[$"D{rowCount}"].Value = row[3].ToString();
ws[$"E{rowCount}"].Value = row[4].ToString();
rowCount++;
}
// Save the workbook as a CSV file
wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
}
}
using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;
class Program
{
// Method to retrieve data from SQL database and return as DataTable
public static DataTable GetData()
{
// Define connection string (modify accordingly for your local server)
string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
string query = "SELECT * FROM STUDENT_DATA";
try
{
// Create SQL connection
using SqlConnection conn = new SqlConnection(connString);
// Create SQL command
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
// Create data adapter
using SqlDataAdapter da = new SqlDataAdapter(cmd);
// Query the database and return the result to a data table
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
throw;
}
}
static void Main(string[] args)
{
// Retrieve data and store it in a DataTable
DataTable table = GetData();
// Create a new Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "JOHN";
// Use the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
int rowCount = 1;
// Populate the worksheet with data from the DataTable
foreach (DataRow row in table.Rows)
{
ws[$"A{rowCount}"].Value = row[0].ToString();
ws[$"B{rowCount}"].Value = row[1].ToString();
ws[$"C{rowCount}"].Value = row[2].ToString();
ws[$"D{rowCount}"].Value = row[3].ToString();
ws[$"E{rowCount}"].Value = row[4].ToString();
rowCount++;
}
// Save the workbook as a CSV file
wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
}
}
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports IronXL
Friend Class Program
' Method to retrieve data from SQL database and return as DataTable
Public Shared Function GetData() As DataTable
' Define connection string (modify accordingly for your local server)
Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
Dim query As String = "SELECT * FROM STUDENT_DATA"
Try
' Create SQL connection
Using conn As New SqlConnection(connString)
' Create SQL command
Dim cmd As New SqlCommand(query, conn)
conn.Open()
' Create data adapter
Using da As New SqlDataAdapter(cmd)
' Query the database and return the result to a data table
Dim dt As New DataTable()
da.Fill(dt)
Return dt
End Using
End Using
Catch ex As Exception
Console.WriteLine($"An error occurred: {ex.Message}")
Throw
End Try
End Function
Shared Sub Main(ByVal args() As String)
' Retrieve data and store it in a DataTable
Dim table As DataTable = GetData()
' Create a new Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "JOHN"
' Use the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
Dim rowCount As Integer = 1
' Populate the worksheet with data from the DataTable
For Each row As DataRow In table.Rows
ws($"A{rowCount}").Value = row(0).ToString()
ws($"B{rowCount}").Value = row(1).ToString()
ws($"C{rowCount}").Value = row(2).ToString()
ws($"D{rowCount}").Value = row(3).ToString()
ws($"E{rowCount}").Value = row(4).ToString()
rowCount += 1
Next row
' Save the workbook as a CSV file
wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
End Sub
End Class
程式碼解釋
-
方法
GetData()從SQL Server資料庫中提取資料並將其作為DataTable返回。 -
在
WorkSheet中。 -
一個
WorkSheet的新行中。 - 最後,使用IronXL提供的
SaveAsCsv功能保存CSV文件。
輸出
此程式生成的CSV檔文件如下:
如何在C#中將資料集轉換為CSV,圖8:CSV輸出文件⟩
CSV輸出文件
很明顯,CSV文件生成充分並與提供的輸入資料對齊。
總結
本文示範了如何從資料集在C#中建立CSV檔案。 該程式庫還可以使用C#讀取CSV文件。 從SQL Server資料庫中提取的資料集可通過以下三個步驟建立CSV檔文件:
- 從SQL Server獲取資料。
- 將資料填充到資料表中。
- 從該資料表中建立CSV檔。
使用IronXL在.NET 7中建立CSV檔非常簡單,如上所示。 這款程式性能極佳,因為使用.NET 7和IronXL編寫。 IronXL提供其他實用功能,例如建立、讀取和操作Excel檔案。 欲了解更多詳情,請存取官方文件。
此外,IronPDF為開發者提供了將PDF文件渲染為圖片和從PDF中提取文字和內容的方法。 此外,IronPDF也能夠在PDF中渲染圖表、新增條碼、程式化的使用密碼增強安全性。
IronXL的免費版本用於開發用途。 若要在生產環境中部署應用程式,請獲取免費試用版或商業授權。 IronXL是Iron Suite的一部分,其中包含五個程式庫:
- IronXL,今天已經介紹。
- IronPDF 用於生成、讀取和操作PDF文件
- IronOCR 用於從圖片提取文字
- IronBarcode 用於讀取和生成條碼
- IronWebScraper 用於從網站提取結構化資料。
若一同購買,您可以以兩者的價格獲得所有這些產品。
常見問題
如何將C#資料集轉換為CSV文件?
您可以使用IronXL將C#資料集轉換為CSV文件。首先,從來源檢索資料,例如SQL Server資料庫,並將其填充到DataTable中。然後,使用IronXL將DataTable匯出為CSV文件。
在.NET中處理Excel文件是否需要Microsoft Office?
不,使用IronXL在.NET中處理Excel文件不需要Microsoft Office。IronXL獨立運作,無需Office或Interop相依性。
安裝IronXL以處理電子表格的最佳方法是什麼?
安裝IronXL以處理電子表格的最佳方法是通過Visual Studio中的NuGet包管理器控制台。使用命令:Install-Package IronXL.Excel。
IronXL在處理電子表格時如何提高生產力?
IronXL通過讓開發者能夠快速且輕鬆地在.NET應用程式內讀取、生成和編輯Excel和CSV文件,提高了生產力,無需額外的軟體安裝或相依性。
我可以使用IronXL從任何資料來源生成CSV文件嗎?
是的,您可以使用IronXL從任何資料來源生成CSV文件。文章展示了如何從SQL Server資料庫中填充DataTable,然後使用IronXL將其匯出為CSV。
IronXL是否與最新的.NET版本相容?
是的,IronXL與最新的.NET版本相容,包括.NET 7,並在這些平台上提供性能提升的好處。
使用IronXL進行電子表格任務的主要優勢是什麼?
使用IronXL的主要優勢包括可以不依賴Microsoft Office處理電子表格,支持所有.NET版本,以及簡單的資料集轉換成CSV文件的效率高。
Iron Suite是什麼,它包括什麼?
Iron Suite是一系列庫,包括用於Excel文件的IronXL、用於PDF的IronPDF、從圖像提取文字的IronOCR、條碼的IronBarcode和用於網頁資料提取的IronWebScraper。




