C# Windows 应用程序将数据表数据导出到 .csv 文件
C# Windows Application export datatable data to .csv file
我想要的是将 datatable 导出到 .csv 文件。
这是我尝试过的方法,但是花费的时间太长了:
string strFilePath= @"C:\myCSVfile.csv";
--
public void CreateCSVFile(DataTable dtDataTablesList, string strFilePath)
{
// Create the CSV file to which grid data will be exported.
StreamWriter sw = new StreamWriter(strFilePath, false);
//First we will write the headers.
int iColCount = dtDataTablesList.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write(dtDataTablesList.Columns[i]);
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
// Now write all the rows.
foreach (DataRow dr in dtDataTablesList.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(dr[i].ToString());
}
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
}
有没有其他方法可以更快地做到这一点?
提前感谢您的任何建议。
现在速度更快,这就是我所做的:
- 我统计了处理器的数量
- 为每个创建一个线程
- 在线程上划分行
- 每个导出到自己的文件
- 最后合并文件
- 添加一个漂亮的进度显示
我想要的是将 datatable 导出到 .csv 文件。
这是我尝试过的方法,但是花费的时间太长了:
string strFilePath= @"C:\myCSVfile.csv";
--
public void CreateCSVFile(DataTable dtDataTablesList, string strFilePath)
{
// Create the CSV file to which grid data will be exported.
StreamWriter sw = new StreamWriter(strFilePath, false);
//First we will write the headers.
int iColCount = dtDataTablesList.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write(dtDataTablesList.Columns[i]);
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
// Now write all the rows.
foreach (DataRow dr in dtDataTablesList.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(dr[i].ToString());
}
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
}
有没有其他方法可以更快地做到这一点?
提前感谢您的任何建议。
现在速度更快,这就是我所做的:
- 我统计了处理器的数量
- 为每个创建一个线程
- 在线程上划分行
- 每个导出到自己的文件
- 最后合并文件
- 添加一个漂亮的进度显示