CSVReader—CSV文件中不存在字段

本文关键字:不存在 字段 文件 CSV CSVReader | 更新日期: 2023-09-27 18:16:07

我正在使用CSVHelper NuGet包,并得到错误"字段不存在于CSV文件。"下面是我的代码:

using (TextReader prodFile = System.IO.File.OpenText(filePath))
{
    CsvReader csv = new CsvReader(prodFile);
    List<PulProduct> prodList = csv.GetRecords<PulProduct>().ToList();
}

public class PulProduct
    {
        public string PartNumber { get; set; }
        public string PPartNumber { get; set; }
        public string VPartNumber { get; set; }
        public string VPPartNumber { get; set; }
        public string Status { get; set; }
        public string Description { get; set; }
        public decimal ORetail { get; set; }
        public decimal CSRetail { get; set; }
        public decimal BDPrice { get; set; }
        public decimal YDPrice { get; set; }
        public string Hazardous { get; set; }
        public string TruckPart { get; set; }
        public string PartAddDate { get; set; }
        public int AvailabilityWI { get; set; }
        public int AvailabilityNY { get; set; }
        public int AvailabilityTX { get; set; }
        public int AvailabilityCA { get; set; }
        public int AvailabilityNV { get; set; }
        public int AvailabilityNC { get; set; }
        public int AvailabilityNational { get; set; }
        public string Trademark { get; set; }
        public string AdPolicy { get; set; }
        public string PriceChanged { get; set; }
        public string UOM { get; set; }
        public string UPC { get; set; }
        public string BrandName { get; set; }
        public string Country { get; set; }
        public string Weight { get; set; }
        public string Closeout { get; set;}
        public string NoShipToCA { get; set; }
        public string Notes {get; set; }
    }

CSVHelper文档说CSVHelper会自动将我的类映射到CSV文件。我不知道我做错了什么。

完整的例外是:

类型为"CsvHelper"的异常。CsvMissingFieldException'发生在CsvHelper.dll中,但未在用户代码中处理

附加信息:CSV文件中不存在字段"PartNumber"。

这是一个示例头和第一行:

Part Number,Punctuated Part Number,Vendor Part Number,Vendor Punctuated Part Number,Part Status,Part Description,Original Retail,Current Suggested Retail,Base Dealer Price,Your Dealer Price,Hazardous Code,Truck Part Only,Part Add Date,WI Availability,NY Availability,TX Availability,CA Availability,NV Availability,NC Availability,National Availability,Trademark,Ad Policy,Price Changed Today,Unit of Measure,UPC Code,Brand Name,Country of Origin,Weight,Closeout Catalog Indicator,NoShipToCA, Notes
0023451,001-0901,0067401,067-0401,S,4-1 SYS OBR CB350/4,399.95,352.95,384.40,214.40,,,19341102,0,0,0,0,0,0,0,,,N,EA,879345348000086,MAC,US,13.80,N, ,

CSVReader—CSV文件中不存在字段

由于空白,您的字段名和文件列标题不匹配。在PulProduct中,第一个字段是"PartNumber"。在示例文件中,第一列是"部件号"。在CsvConfiguration对象中将IgnoreHeaderWhiteSpace设置为true将处理此问题。

using (TextReader prodFile = System.IO.File.OpenText(filePath))
{
    CsvReader csv = new CsvReader(prodFile);
    csv.Configuration.IgnoreHeaderWhiteSpace = true;
    List<PulProduct> prodList = csv.GetRecords<PulProduct>().ToList();
}

尽管文档声明CSVHelper将自动将类映射到CSV文件,但您仍然需要手动编写映射到CSV文件的映射。