繁体   English   中英

C#从数据表中将数据添加到现有CSV文件中的列中

[英]C# Appending data in columns in an existing CSV file from datatable

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

如果我理解正确,您有:

A,B,C

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

A,B,C,D,E,F

您所看到的是

A,B,C

然后在下一行:

D,E,F

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

要执行您想要的操作,您需要读取输出文件,解析内容,在正确的位置插入额外的数据,然后重新保存文件。

我会尝试将文件加载到流中,读取一行,将新数据追加到该行的末尾,然后将该行写入一个新流中(让我们将此称为最终输出),重复该过程,直到解析完所有内容为止。数据,然后保存最终输出流。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM