1

我正在尝试将数据附加到现有的 CSV 文件以在 excel 中使用。

我正在检索的数据量非常高,所以我不能只填充数据表然后将其写入 CSV。目前我正在用数据填充表格的每一列,将其写入文件,然后清除表格并重新启动。

这适用于将数据添加到单独列中的 CSV,但它会将新数据添加到下一列中的现有数据下。

这是程序写入 CSV 的方式:

  public void Output_CSV()
    {
        StringBuilder sb = new StringBuilder();

        foreach (DataRow row in DataTable.Rows)
        {
            IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
            sb.AppendLine(string.Join(",", fields));
        }

        File.AppendAllText(outPut, sb.ToString());

        sb.Clear();
    }

此代码添加表格中的所有数据,包括上一列中的空白单元格,在下面添加当前数据。有没有办法在表中选择一列并将该列中的行添加到 CSV。

4

1 回答 1

0

如果我理解正确,您有:

A,B,C

在 CSV 文件中。您想将数据附加到每一行:

A,B,C,D,E,F

你看到的是

A,B,C

然后在下一行:

D,E,F

那是因为 AppendAllText 方法只是写入文件的底部。

要做你想做的事,你需要读取输出文件,解析内容,在正确的点插入额外的数据,然后重新保存文件..

我会尝试将文件加载到流中,读取一行,将新数据附加到行尾,然后将行写入新流(让我们称之为最终输出),重复此操作,直到你解析了所有数据,然后保存最终的输出流。

这假设 CSV 数据在每行的末尾有换行符、回车符或两者都有。

于 2012-09-21T09:45:31.087 回答