我正在使用出色的 FileHelpers 库来导入许多 csv 文件,但遇到了问题。我有一个包含这三个示例行的 csv 文件
id,text,number
120,"good line this one",789
121,""not good" line", 4456
122,,5446
和这个(示例)类
[IgnoreFirst(1)]
[IgnoreEmptyLines()]
[DelimitedRecord(",")]
public sealed class JOURNAL
{
public Int32 ID;
[FieldQuoted('"', QuoteMode.AlwaysQuoted, MultilineMode.NotAllow)]
public string TEXT;
public Int32? NUMBER;
}
问题QuoteMode.AlwaysQuoted
在于 ID 122 将失败并出现错误:
字段“TEXT”不以第 3 行的 QuotedChar 开头。您可以使用 FieldQuoted(QuoteMode.OptionalForRead) 允许可选的带引号字段
切换到QuoteMode.OptionalForRead
将失败,并出现 id 121 错误:
字段 TEXT 被引用,但被引用的 char: " not 就在分隔符之前(您可以使用 [FieldTrim] 来避免此错误)
那么如何处理包含没有引号的空字段和在文本中带有额外引号的带引号的文本字段的csv?