写一个导出DataTable数据并生成一个CSV的函数
时间: 2024-10-16 21:17:05 浏览: 8
在C#中,你可以使用`System.Data.DataTable`类配合`System.IO.File`类来实现将DataTable数据导出为CSV文件。以下是一个简单的示例函数,它接受一个DataTable对象和一个文件路径作为参数:
```csharp
using System;
using System.Data;
using System.IO;
public static void ExportDataTableToCsv(DataTable dataTable, string filePath)
{
// 创建一个新的StringBuilder用于构建CSV字符串
StringBuilder csvBuilder = new StringBuilder();
// 添加表头行(如果有的话)
if (dataTable.Columns.Count > 0)
{
foreach (DataColumn column in dataTable.Columns)
{
csvBuilder.Append(column.ColumnName + ",");
}
csvBuilder.Length--; // 删除最后一个逗号
csvBuilder.AppendLine();
}
// 添加数据行
foreach (DataRow row in dataTable.Rows)
{
foreach (object value in row.ItemArray)
{
csvBuilder.Append(value == null ? "" : value.ToString() + ",");
}
csvBuilder.Length--; // 删除最后一个逗号
csvBuilder.AppendLine();
}
// 将CSV字符串写入文件
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.Write(csvBuilder.ToString());
}
Console.WriteLine($"DataTable exported to CSV file: {filePath}");
}
```
这个函数首先检查DataTable是否有列,如果有则添加表头。然后遍历每一行数据,将其转换为字符串并添加到CSV字符串中。最后,将整个字符串写入指定的CSV文件。
使用时,只需要传入你的DataTable和你想保存的文件路径即可:
```csharp
// 假设你有一个名为dataTable的 DataTable
ExportDataTableToCsv(dataTable, "output.csv");
```
阅读全文