【问题标题】:CSVHelper - CSV Parsing error with double quotes in headerCSVHelper - 标题中带有双引号的 CSV 解析错误
【发布时间】:2021-01-15 16:29:35
【问题描述】:

我在尝试使用 CSVHelper 读取 CSV 文件时遇到解析错误。 在标题中我有引号,所以我不知道如何处理 CSVHelper 以设置读取标题阅读器中的引号。

csv:

"Index","Header"
1,name
2,surname

c#

public class Object
{
    public int Index {get; set;}
    public string Header {get; set;}
}

using (var reader = new StreamReader("path\\to\\file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
    var records = csv.GetRecords<Object>();
}

然后我有一个解析错误,因为它在标题的每个单词的开头和结尾都有引号字符,我该如何解决?

【问题讨论】:

  • “我有一个错误” - 最好说“我在第 1 行收到一个 CsvParseException '错误;意外字符”' 或任何实际错误。请始终避免说“我遇到错误”而不确切地说出它是什么
  • 我的 try catch 中没有明显的错误,它告诉读者无法解析 int32,除此之外,我稍后会在这个问题上尝试 cmets。感谢大家的帮助
  • 对我来说听起来很清楚。请提供您收到的任何异常的完整类型名称和确切消息文本
  • 用 IgnoreQuotes 修复

标签: c# .net csv .net-framework-version csvhelper


【解决方案1】:

最后的答案是使用 IgnoreQuotes。

using (var reader = new StreamReader("path\\to\\file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
    csv.Configuration.IgnoreQuotes = true
    var records = csv.GetRecords<Object>();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 2018-05-13
    • 2012-06-08
    相关资源
    最近更新 更多