使用 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;
我正在尝试处理一个 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;