【问题标题】:C# Appending data in columns in an existing CSV file from datatableC# 在数据表中的现有 CSV 文件的列中附加数据
【发布时间】:2012-09-21 09:14:53
【问题描述】:

我正在尝试将数据附加到现有的 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。

【问题讨论】:

标签: c# csv datatable


【解决方案1】:

如果我理解正确,您有:

A,B,C

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

A,B,C,D,E,F

你看到的是

A,B,C

然后在下一行:

D,E,F

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2020-12-26
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    相关资源
    最近更新 更多