-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

次の 2 つの選択肢があります。

  1. 改行または文字を引用符で囲んでフィールドをラップします (文字に変換する,ことを忘れないでください。"""
  2. .NET で利用できる多くの優れたサード パーティの CSV パッケージから 1 つを選択し、それを処理します。
于 2013-11-08T09:54:42.387 に答える