How to Use C# to Convert Datatable to CSV
在C#中使用IronXL通过创建一个DataTable方法来转换为CSV - 无需复杂的循环或Interop。
DataTable的单行CSV导出@@--AH2EG--@@
使用IronXL将填充的DataTable转换为CSV文件,只需调用一个方法—无循环,无Interop,无复杂性。 只需一个SaveAsCsv在几秒内导出。
最小工作流程(5 个步骤)
- 下载并安装将 DataTable 转换为 CSV 的 C# 库
- 使用
DataTable类存储新数据 - 创建新电子表格或导入现有电子表格
- 遍历表格行并相应地填充工作表中的单元格。
- 使用
SaveAsCsvC# 函数导出到 CSV 文件
步骤1
如何在我的项目中安装 IronXL?
在您的应用程序中使用 IronXL 之前,您必须先安装 IronXL。 IronXL 为您的项目提供多种安装选项。 IronXL 是一个库,可简化 在 C# 中处理 Excel 文件,而无需安装 Microsoft Excel 或 Interop。
我应该使用哪种安装方法?
请使用以下链接从官方网站下载:https://ironsoftware.com/csharp/excel/docs/
或
在 Visual Studio 中,选择"项目"菜单
- 点击管理NuGet包
- 搜索
IronXl.Excel - 点击安装
我应该使用什么 NuGet 命令?
Install-Package IronXL.Excel
为什么选择 NuGet 包管理器?
NuGet 是 .NET 开发人员的首选方法,因为它会自动管理依赖关系并保持库的最新性。 IronXL包包含所有必要组件用于转换电子表格文件类型和处理多种Excel格式。
如何使用教程
如何创建并导出DataTable为CSV?
将W或kBook,填充数据,并使用IronXL内置的CSV写入功能。 这种方法比手动构建 CSV 字符串或使用传统的文件流方法更有效。
我需要导入哪个命名空间?
首先,导入IronXL命名空间。 IronXL提供全面支持导入和导出DataTable对象,使得它非常适合于基于数据库的应用程序。
using IronXL;
using IronXL;
Imports IronXL
完整的代码示例是什么?
添加以下代码:
:path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs
using IronXL;
using System;
using System.Data;
// Create a new DataTable object
DataTable table = new DataTable();
// Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", typeof(string));
// Add rows to the DataTable
table.Rows.Add("0");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
// Create a new Excel workbook and set its author metadata
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "OJ";
// Get the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Initialize rowCounter for Excel sheet rows
int rowCount = 1;
// Loop through each row in the DataTable and add the data to the Excel worksheet
foreach (DataRow row in table.Rows)
{
// Populate worksheet cells with data from DataTable
ws["A" + (rowCount)].Value = row[0].ToString();
rowCount++;
}
// Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Will be saved as: Save_DataTable_CSV.Sheet1.csv
Imports IronXL
Imports System
Imports System.Data
' Create a new DataTable object
Dim table As New DataTable()
' Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", GetType(String))
' Add rows to the DataTable
table.Rows.Add("0")
table.Rows.Add("1")
table.Rows.Add("2")
table.Rows.Add("3")
table.Rows.Add("1")
table.Rows.Add("2")
table.Rows.Add("3")
' Create a new Excel workbook and set its author metadata
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "OJ"
' Get the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Initialize rowCounter for Excel sheet rows
Dim rowCount As Integer = 1
' Loop through each row in the DataTable and add the data to the Excel worksheet
For Each row As DataRow In table.Rows
' Populate worksheet cells with data from DataTable
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next
' Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";") ' Will be saved as: Save_DataTable_CSV.Sheet1.csv
代码如何逐步工作?
上述代码创建一个DataTable中的数据插入Excel工作表。 最后,SaveAsCsv方法将数据表导出为CSV。
流程分解:
-
数据表创建:初始化一个新的
DataTable并通过添加列来定义其架构。 这类似于定义数据库表结构。 -
数据填充:使用
DataTable添加行。 每行代表一条用于 CSV 导出的记录。 -
工作簿生成:IronXL的
W或kBook.Create()方法初始化一个新的Excel工作簿。 如有需要,您还可以创建带有多个工作表的电子表格。 -
单元格填充:f或each循环遍历
DataTable行,并使用单元格引用语法(例如,"A1"、"A2")将每个值映射到特定工作表单元格。 - CSV导出:
SaveAsCsv()方法处理CSV格式的复杂性,包括正确转义特殊字符和分隔符处理。
高级 DataTable 场景如何?
对于包含多个列的复杂DataTable,可以这样扩展代码:
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));
--snip--
w或kbook.SaveAsCsv("products.csv", ",");
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));
--snip--
w或kbook.SaveAsCsv("products.csv", ",");
' Create a DataTable with multiple columns
Dim advancedTable As New DataTable()
advancedTable.Columns.Add("ID", GetType(Integer))
advancedTable.Columns.Add("Name", GetType(String))
advancedTable.Columns.Add("Price", GetType(Decimal))
' --snip--
w或kbook.SaveAsCsv("products.csv", ",")
输出结果是什么样的?
输出的 Excel 工作表显示如下:
如何处理大型DataTable?
处理包含数千行的大型DataTable时,IronXL保持出色的性能。 该库可高效处理大量数据集。 对于生产环境,请应用您的 许可证密钥,以去除水印并启用全部功能。
关于错误处理?
在进行文件操作时,始终执行正确的错误处理:
try
{
// Your DataTable to CSV conversion code
W或kBook wb = W或kBook.Create();
// ... rest of the code
wb.SaveAsCsv("output.csv", ",");
Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
Console.WriteLine($"Err或 creating CSV: {ex.Message}");
}
try
{
// Your DataTable to CSV conversion code
W或kBook wb = W或kBook.Create();
// ... rest of the code
wb.SaveAsCsv("output.csv", ",");
Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
Console.WriteLine($"Err或 creating CSV: {ex.Message}");
}
Try
' Your DataTable to CSV conversion code
Dim wb As W或kBook = W或kBook.Create()
' ... rest of the code
wb.SaveAsCsv("output.csv", ",")
Console.WriteLine("CSV file created successfully!")
Catch ex As Exception
Console.WriteLine($"Err或 creating CSV: {ex.Message}")
End Try
库快速访问
常见问题解答
如何在不编写复杂循环的情况下用 C# 将 DataTable 转换为 CSV?
IronXL 提供了将 DataTable 转换为 CSV 的简单单行解决方案。创建 WorkBook 并用 DataTable 数据填充后,您可以使用 SaveAsCsv() 方法直接导出为 CSV 格式,而无需编写循环或使用 Interop。
DataTable 到 CSV 转换库有哪些安装选项?
IronXL 可通过 Visual Studio 中的 NuGet 包管理器搜索 "IronXL.Excel "或使用 NuGet 命令行安装。这是首选方法,因为它会自动管理依赖关系并保持库的最新状态。
将 DataTable 转换为 CSV 需要安装 Microsoft Excel 吗?
不,IronXL.Excel 可独立运行,无需安装 Microsoft Excel 或 Interop。它是一个独立的库,可简化 C# 应用程序中 Excel 文件和 CSV 导出的工作。
将 DataTable 转换为 CSV 需要导入什么命名空间?
您需要通过在 C# 文件顶部添加 "using IronXL; "来导入 IronXL 命名空间。这将为导入和导出 DataSet 和 DataTable 对象提供全面支持。
导出到 CSV 时能否指定自定义分隔符?
是的,IronXL 的 SaveAsCsv() 方法允许您指定自定义分隔符。在示例代码中,逗号(",")被用作分隔符,但您可以将其更改为任何符合您要求的字符。

