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

时间:2019-01-17 15:36:18

标签: c# .net azure-storage-blobs

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

文件具有标题,我想在文件中添加2个具有定义的标题和值的附加列,并将它们写入其他位置。 我正在使用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   |     

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

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

            File.WriteAllLines(processedfilePath, csv);

1 个答案:

答案 0 :(得分:1)

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

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

这里是一个例子:

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