导出CSV文件时在引号内处理逗号C#4。任何建议

大家好我正在读一个csv文件,当字段内有逗号时我遇到了问题

一切正常,直到我在逗号中得到一个逗号,所有字段都会围绕它。

string delimiter=","; using (var sr = new StreamReader(fileName)) { sr.ReadLine(); //skip headers while (!sr.EndOfStream) { var readline = sr.ReadLine(); if (readline == null) continue; var fields = readline.Split (delimiter.ToCharArray()); } }if I CANNOT split because of commas within quotation . How can I recode it? 

我不能使用开源或第三方库。

有什么建议?

使用TextFieldParser类。

MSDN上的描述是:

提供用于解析结构化文本文件的方法和属性。

它位于Microsoft.VisualBasic.FileIO命名空间中,因此不是第三方也不是开源。

它是一个托管类,因此您只需添加引用,导入命名空间并使用即可。

用法示例:

 using(var fileReader = New TextFieldParser("C:\ParserText.txt")) { fileReader.TextFieldType = FieldType.Delimited; fileReader.SetDelimiters(","); ... } 

由于第三方图书馆已经出局,有一些选择(可能还有其他一些):

  • 自己写一个引用感知的CSV阅读器
  • 使用ODBC – 请参见此处的最后一页