-4

数据包含换行符,因此每次将新行附加到导出的数据并增加记录时,数据也包含“,”分隔值我已经实现的就是这个解决方案

StringBuilder sb = new StringBuilder();
        for (int k = 0; k < dt.Columns.Count; k++)
        {
            //add separator
            sb.Append(dt.Columns[k].ColumnName + ',');
        }

        //append new line
        sb.Append("\r\n");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            //string[] fields = dt.Rows[i].ItemArray.Select(field => field.ToString()).
            //                    ToArray();
            //sb.AppendLine(string.Join(",", fields));

            //for (int k = 0; k < dt.Columns.Count; k++)
            //{
                var fields = dt.Rows[i].ItemArray.Select(field => field.ToString().WrapInQuotesIfContains(","));
                sb.AppendLine(string.Join(",", fields));
                //add separator
                //sb.Append(dt.Rows[i][k].ToString() + ';');
            //}
            //append new line
            //sb.Append("\r\n");`enter code here`
        }
4

1 回答 1

1

你有两个选择:

  1. 用换行符或引号中的字符换行和字段,(不要忘记转换"""字符。
  2. 选择可用于 .NET 的众多优秀的第三方 CSV 包之一,并让它处理它。
于 2013-11-08T09:54:42.387 回答