【问题标题】:How to generate multiple csv files from dataSet which is having multiple tables如何从具有多个表的数据集生成多个 csv 文件
【发布时间】:2014-07-04 07:36:17
【问题描述】:

我想从 Dataset 生成多个不同的不同 .csv 文件(其中包含许多表)

我尝试过如下操作,但不知道生成不同 csv 的代码。

 public string GenerateCSVfiles(List<DataSet> dataSets)
        {
               //create csv file
            foreach (DataRow row in dataTable.Rows)
            {
                for (int i = 0; i < dataTable.Columns.Count; i++)
                {
                    result.Append(row[i].ToString());
                    result.Append(i == dataTable.Columns.Count - 1 ? "\n" : ",");
                }
            }

            return result.ToString();

            }

            //return Files in .zip;
        }

【问题讨论】:

  • 你想在 GenerateCSVfiles 中返回什么,你想分别生成每个文件吗?

标签: c# csv io dataset filestream


【解决方案1】:

试试这个代码:使用数据表名称生成 csv 文件名:

public void GenerateCSVfiles(DataSet dataSets)
{
    //create csv file
    StreamWriter sw = null;
    StringBuilder sb = new StringBuilder();
    foreach (DataTable dataTable in dataSets.Tables)
    {
        sw = new StreamWriter(string.Format(@"C:\Temp\{0}.csv", dataTable.TableName));

        for (int i = 0; i < dataTable.Rows.Count; i++)
        {
            sb.Clear();

            for (int j = 0; j < dataTable.Columns.Count; j++)
            {
                sb.Append(dataTable.Rows[i][j]);
                if (j != (dataTable.Columns.Count - 1)) sb.Append(",");
            }
            sw.WriteLine(sb.ToString());
        }
        sw.Close();
    }
}

【讨论】:

  • +1,但这会在最后添加一个额外的逗号。我会说添加if(j == (dataTable.Columns.Count - 1)) sb.Append(",");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多