使用 File-Helper 处理记录 CSV 解析器中的额外逗号

Using File-Helper to handle extra comma in record CSV parser

我正在尝试处理一个 LLarge CSV 文件 - 1Gb,有时我可能会得到其中列值包含“,”的记录。

例如

"A","col1","col2","col3","col4"

"B","Row1","Row1Col2","Row1Col3","Row1Col4"

"C","Row2","Row2,Col2","Row2,Col3","Row2Col4"

最初我使用 Split(,) 但是对于 C 行我得到了不正确的数据,因为列值中有额外的逗号。

我决定使用 FileHelpers,但它似乎无法正确提取值。

当我在 Excel 中打开文件时,它的格式正确(即在正确的列中显示每个值)。

我想提取双引号内的所有值。

不要重新发明轮子。

使用TextFieldParser。它会像 Excel 那样解析您的行。

对于 FileHelpers 你必须使用这个:FieldQuotedAttribute

FieldQuoted: Indicates that the field must be read and written like a Quoted String. (you can pass the quote char and can set if the quote is optional like the Excel CSV format)

[FieldQuoted()] // Quoted with "
public string CustomerName;