Csv 使用FileHelper处理报价

Csv 使用FileHelper处理报价,csv,import,quotes,filehelpers,Csv,Import,Quotes,Filehelpers,我正在使用优秀的FileHelpers库导入许多csv文件,但遇到了一个问题。我有一个csv文件,上面有这三行示例 id,text,number 120,"good line this one",789 121,""not good" line", 4456 122,,5446 还有这个(示例)类 QuoteMode.AlwaysQuoted的问题是ID 122将失败并出现错误: 字段“TEXT”不是以 QuotedChar位于第3行。你可以用 字段引用(QuoteMode.OptionalF

我正在使用优秀的FileHelpers库导入许多csv文件,但遇到了一个问题。我有一个csv文件,上面有这三行示例

id,text,number
120,"good line this one",789
121,""not good" line", 4456
122,,5446
还有这个(示例)类

QuoteMode.AlwaysQuoted
的问题是ID 122将失败并出现错误:

字段“TEXT”不是以 QuotedChar位于第3行。你可以用 字段引用(QuoteMode.OptionalForRead) 允许可选的带引号的字段

切换到
QuoteMode.OptionalForRead
将失败,id为121的错误:

字段文本被引用,但 引用char:“不只是在 分隔符(您可以使用[FieldTrim]来 避免此错误)


那么,我如何处理一个csv,它有没有引号的空字段和文本中有额外引号的带引号的文本字段?

这看起来像是一个我们不支持的案例,让我添加一个测试用例,使它在两种模式下都能工作,第一种模式我们需要验证语义是否正确,即QuoteMode.AlwaysQuoted是否允许、或必须是,“,但第二个选项必须有效:)
干杯

在StackOverflow上为开发者找到答案太好了:)我想澄清一下,你会修改FileHelpers,让QuoteMode.AlwaysQuoted同时允许、、和,“,还是修改QuoteMode.OptionalForRead,让QuoteMode.OptionalForRead允许“坏字符串”他说,ie嵌套引号?我将确定修复QuoteMode.OptionalForRead,我们可以一起分析是否必须允许第一个场景(再考虑一点,AlwaysQuoted的语义不能允许,,),你认为呢?我同意,AlwaysQuoted不应该允许。总是建议,嗯,总是:)检查代码并添加测试用例后,问题是“引用字段内的”必须被替换,即必须像.net中的@“”一样出现两次。在示例中的行中,必须是:121,“不好”行,4456无论如何,我们可以添加一个新的模式或参数,以允许对引用字符串进行更轻松的检查问题可能是例如121,“不好”,行,4456是否为此添加了任何修改?我对以下字段有相同的问题-[“test L”]和[“text1”text2“]和[“text”“]和[“txt”t”“]
  [IgnoreFirst(1)]
  [IgnoreEmptyLines()]
  [DelimitedRecord(",")]
  public sealed class JOURNAL
  {
    public Int32 ID;

    [FieldQuoted('"', QuoteMode.AlwaysQuoted, MultilineMode.NotAllow)]
    public string TEXT;

    public Int32? NUMBER;
  }