【问题标题】:mapping / write assist with csvhelper使用 csvhelper 进行映射/写入辅助
【发布时间】:2014-05-09 09:34:25
【问题描述】:

请在此处快速帮助 csvhelper...

csv: 姓名,姓氏

人物地图:

    public override void CreateMap()
    {
        Map(x => x.Name).Name("Name");
        Map(x => x.LasName).Name("LastName");
    } 

人物类:

  public string Name { get; set; }
  public string LastName { get; set; }

主要:

 public void writePerson()
 {
        IEnumerable<Person> records;
        using (var r = new CsvReader(new StreamReader("person.csv")))
        {
            r.Configuration.RegisterClassMap<PersonMap>();
            records = r.GetRecords<Person>().ToList();     
        } 

        using (var w = new CsvWriter(new StreamWriter("person.csv")))
        {
            w.Configuration.RegisterClassMap<PersonMap>();
            w.WriteRecord(records); //rewrite csv list
            w.WriteField("John")); 
            w.WriteField("Doe");
            w.NextRecord();             
        }
    }

错误行:记录 = reader.GetRecords().ToList();

错误: 没有找到头记录。

【问题讨论】:

    标签: c# csv map mapping csvhelper


    【解决方案1】:

    看起来您的 person.csv 没有第一行作为标题行,如下所示:

    Name,LastName
    

    请检查 CSV 文件。

    【讨论】:

    • 您能否粘贴前 2-3 行带有标题的 csv 文件以及您获得的异常堆栈跟踪?
    【解决方案2】:

    好的,所以我用以下方法修复了它:

    写:

    string persondata = "John, Doe";
    using (FileStream fs = new FileStream("person.csv", FileMode.Append, FileAccess.Write))
            using (StreamWriter sw = new StreamWriter(fs))
            { sw.WriteLine(persondata); sw.Dispose(); }
    

    阅读:

    IEnumerable<Person> records;
    using (var reader = new CsvReader(new StreamReader(@"person.csv")))
    {
            reader.Configuration.RegisterClassMap<PersonMap>();
            records = reader.GetRecords<Person>();
    }
    

    【讨论】:

    • 我遇到了类似的问题。你能解释一下修复是什么吗?从对 GetRecords() 的调用中删除“ToList()”?
    【解决方案3】:

    添加如下配置行

    w.configuration.HasHeaderRecord = false;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 2015-12-12
      • 2022-01-11
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多