繁体   English   中英

使用StreamReader和StreamWriter将列附加到.csv

[英]Append columns to .csv using StreamReader and StreamWriter

我正在读写一些存储在Azure Blob存储中的csv文件。

这些文件具有标题,我想在文件中添加另外两个具有定义的标题和值的列,并将它们写入另一个位置。 我正在使用StreamReader和StreamWriter读取和写入文件,但是像我通常使用File.ReadLines方法那样在附加时遇到了困难。

新列和关联值是我想写入新blob的内容,如下所示。

|Column A|Column B|Column C | New Column 1 | New Column 2 |
|--------|--------|---------|--------------|--------------|
|   1    |   2    |   3     |   new value  |  new value   |   
|   4    |   5    |   6     |   new value  |  new value   |

*编辑-下面添加了代码,突出显示了我想要的功能,但是由于使用流而受到限制

var csv = 
                File.ReadLines(rawfilePath).Select((line, index) => index == 0
              ? line + ",Order"
              : line + "," + index.ToString())
           .ToList();

            File.WriteAllLines(processedfilePath, csv);

我认为使用类要容易得多,您可以使用任何可用于CSV(反序列化)的lib并执行以下方法:

  • 创建代表一行的类
  • 添加所需的列(类的属性)
  • 下载CSV并将其反序列化为类对象数组
  • 用数据填充新列(反序列化后,它们将具有null或默认值)
  • 将对象数组序列化为CSV并上传文件

这是一个例子:

https://stackoverflow.com/a/2094885/10496806

暂无
暂无

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

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