【问题标题】:CsvHelper throws CsvMissingFieldExceptionCsvHelper 抛出 CsvMissingFieldException
【发布时间】:2014-06-22 19:57:51
【问题描述】:

我一直在尝试解析 CSV 文件:

NOTE: All directories are updated daily using information from the previous business day.
Company Name,Stock Symbol,DPM,Cycle,Traded at C2,LEAPS 2014,LEAPS 2015,LEAPS 2016,Product Types
(NEW) NEWS CORPORATION CLASS A,NWSA,SIG:MU,1,,,,Y,L,
1ST UNITED BANCORP INC (FL),FUBC,WOLVERINE,3,,,,,
21VIANET GROUP INC.,VNET,CITADEL,3,,,,,
22ND CENTURY GROUP INC.,XXII,CITADEL,1,,,,,
3-D SYSTEMS CORP,DDD,SIG,2,,,,Y,L,W,
3M COMPANY,MMM,SIG:MMM,1,Y,,,Y,L,W,
51JOB INC,JOBS,SIG,1,,,,,
58.COM  INC.,WUBA,CITADEL,1,,,,,
8X8 INC-NEW,EGHT,SIG,2,,,,,
A A R CORP,AIR,CITADEL,2,,,,,
A V HOMES  INC,AVHI,WOLVERINE,3,,,,,
A.M.  CASTLE & CO,CAS,CITADEL,3,,,,,
A10 NETWORKS INC.,ATEN,CITADEL,3,,,,,
AARON''S  INC,AAN,CITADEL,2,,,,,

使用以下代码(我使用子字符串来摆脱 NOTE 部分):

void sciagnijSymbole_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    String dane = e.Result.Substring(91);

    using (TextReader sr = new StringReader(dane))
    {
        var csv = new CsvReader(sr);
        csv.Configuration.RegisterClassMap<SymbolMap>();
        var listaSymboli = csv.GetRecords<Symbol>().ToList();
    }
}

public class Symbol
{
    public String nazwa { get; set; }
    public String symbol { get; set; }
}

public sealed class SymbolMap : CsvClassMap<Symbol>
{
    public SymbolMap()
    {
        Map(m => m.nazwa);
        Map(m => m.symbol);
    }
}

它会抛出一个 CsvMissingFieldException 异常消息:“CSV 文件中不存在字段 'nazwa'。”我不知道出了什么问题。我只希望第一列和第二列写入类,所以我制作了一张地图,但它说该字段不存在。我也从互联网上获取 CSV 文件,所以我不想更改它。

【问题讨论】:

    标签: c# visual-studio-2010 csv csvhelper


    【解决方案1】:

    如果您的属性名称与 csv 文件中的列名称不匹配,那么您必须在 Map 中指明列名称:

    public sealed class SymbolMap : CsvClassMap<Symbol>
    {
        public SymbolMap()
        {
            Map(m => m.nazwa).Name("Company Name");
            Map(m => m.symbol).Name("Stock Symbol");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      相关资源
      最近更新 更多