使用逗号分隔忽略双引号和空格使用streamreader读取csv

时间:2014-06-12 19:00:06

标签: c# csv

我有一个CSV,其在打开记事本时的数据如下所示:

TEST DATA1,,,,,,
TEST DATA,,,,,,
",12:10,,10:30",,,,",,11:30",,",,12:30"
location,Value1,,Value2,,Value3
mumbai-20,1.2,,,2.3,,3.4
pune-33,1.8,,,2.34,,4.5

我想用streamReader读取这个,忽略逗号,双引号和空格。

我正在使用的代码是

    var reader = new StreamReader(File.OpenRead(@"D:\Test.csv"));
      while (!reader.EndOfStream)
               {
var line = reader.ReadLine();
 var array = line.Split(',');
 foreach (var element in array)
                   Console.WriteLine(element);

               }

1 个答案:

答案 0 :(得分:0)

String.Split()是处理CSV数据的可怕方式。它有各种各样的边缘情况无法处理。您需要一个专用的解析器。

这会使用my CSV parser复制您的样本:

foreach (IList<string> row in CSV.FromFile(@"D:\Test.csv") )
{
    foreach(string element in row)
    {
        Console.WriteLine(element);
    }
}

它只是您的代码中包含的一个源文件。