如何在 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集成开发环境;推荐使用最新版本的Visual Studio,但您可以根据个人喜好使用任何版本。 请注意,创建新项目的步骤可能因版本而异。
Visual Studio的启动窗口
点击创建新项目。 将会出现一个新窗口,如下所示。
在 Visual Studio 中创建新项目
从列表中选择您喜欢的项目模板。点击 下一步 按钮,然后将出现一个新窗口,如下所示。
配置新创建的项目
命名您的项目,选择其位置,然后按 下一步 按钮。 将会出现一个新窗口,如下所示。
选择.NET Framework版本
选择您的目标.NET Framework。 您可以选择任何适合您需求的.NET Framework,因为IronXL支持每个.NET Framework。 本教程将使用.NET 7。点击 创建 按钮,将新项目创建如下面所示。
新的Visual Studio控制台应用程序
现在,安装IronXL NuGet包以在此应用程序中使用它。
安装 IronXL
打开NuGet包管理器控制台,并输入以下命令。
Install-Package IronXL.Excel
NuGet包 将被安装并准备好使用,如下所示。
IronXL包及其包依赖项的安装
现在,让我们编写一些代码以将数据集转换为C#中的CSV文件。
此示例将从SQL服务器数据库填充数据。 从SQL数据库获取数据集之后,我们将使用此输入数据创建一个CSV文件。
创建数据表
第一步是从SQL填充数据,但您可以使用您偏好的任何数据源。
本教程使用以下数据:
使用示例数据创建新数据库
以下是用于创建示例数据的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返回。在
Main方法中,使用IronXL创建一个WorkBook,然后将数据填充到WorkSheet中。使用
foreach循环遍历DataTable的行,将每个值插入到WorkSheet中的新行中。- 最后,使用IronXL提供的
SaveAsCsv函数保存CSV文件。
输出
该程序生成的CSV文件如下:
CSV输出文件
很显然,该CSV文件生成正确,并与提供的输入对齐。
摘要
本文演示了如何从数据集中在C#中创建CSV文件。 该库还可以 使用C#读取CSV文件。 来自SQL Server数据库的数据集被填充并在三个步骤中创建CSV文件:
- 从SQL Server获取数据。
- 将数据填充到数据表。
- 从该数据表创建CSV文件。
在.NET 7中使用IronXL创建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 以处理电子表格的最佳方式是什么?
通过 Visual Studio 中的 NuGet 包管理器控制台安装 IronXL 是处理电子表格的最佳方式。使用命令: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。








