C#Windows应用程序将数据表数据导出到.csv文件

时间:2018-05-10 09:03:05

标签: c# c#-3.0 c#-2.0

我想要的是将数据表导出到 .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();
}

还有其他方法可以更快地完成这项工作吗?

提前感谢您提出任何建议。

1 个答案:

答案 0 :(得分:0)

现在速度更快,这就是我所做的:

  1. 我计算了处理器数量
  2. 为每个
  3. 创建一个主题
  4. 在线程上划分行
  5. 将每个导出到自己的文件
  6. 结合最后的文件
  7. 添加一个不错的进度显示