c#datatable数据导出.csv,避免出现乱码,完整版
时间: 2024-12-24 09:13:01 AIGC 浏览: 94 评论: 6
在C#中,如果你想要将`DataTable`数据导出到CSV文件并避免出现乱码,可以按照以下步骤操作:
1. 引入所需命名空间:
```csharp
using System;
using System.IO;
using System.Text;
using System.Globalization;
```
2. 创建一个WriteToCsv方法,这个方法接受DataTable作为参数,并指定输出文件路径:
```csharp
public static void DataTableToCsv(DataTable dataTable, string outputPath)
{
using (StreamWriter writer = new StreamWriter(outputPath, true, Encoding.UTF8))
{
// 使用UTF-8编码,确保字符集正确
writer.Encoding = Encoding.UTF8;
// 获取表头列名
string[] headerRow = dataTable.Columns.Cast<DataColumn>()
.Select(column => column.ColumnName)
.ToArray();
// 写入表头行
writer.WriteLine(string.Join(",", headerRow));
// 写入数据行
foreach (DataRow row in dataTable.Rows)
{
string[] rowData = row.ItemArray.Select(item => item.ToString()).ToArray();
writer.WriteLine(string.Join(",", rowData));
}
}
}
```
3. 调用此方法,传入你的DataTable和期望的CSV文件路径:
```csharp
DataTable dataTable = ...; // 初始化你的DataTable
string outputPath = "output.csv"; // 指定输出文件路径
DataTableToCsv(dataTable, outputPath);
```
注意:如果表格中的内容本身就包含非ASCII字符,确保它们已经被正确编码(比如从数据库读取时),否则乱码问题仍然可能出现。
阅读全文
相关推荐





















评论

WaiyuetFung
2025.08.23
步骤明确,包含命名空间和调用示例非常全面🎊

朱王勇
2025.08.01
代码示例详细,适合初学者参考学习

士多霹雳酱
2025.07.27
解决了C#导出CSV乱码问题,方法清晰实用🦔

八位数花园
2025.06.23
使用UTF-8编码有效避免了中文乱码问题🐷

蒋寻
2025.04.08
对数据处理部分解释到位,易于理解

艾法
2025.03.31
适合需要将DataTable导出为CSV的开发人员参考