我试图读取一个csv文件的头‘电子邮件’,然而,我不断得到CsvMissingFieldException抛出的“字段的电子邮件‘不存在于CSV文件”。
我设置了CSVreader来处理-
csvReader.Configuration.IsHeaderCaseSensitive = false;但我还是遇到了同样的问题。有人知道附近有什么工作吗?或者为什么配置不能工作?
在我的实用程序类中:
public static IEnumerable<T> CSVreader<T>(string fileName)
{
using (var fileReader = File.OpenText(fileName))
using (var csvReader = new CsvHelper.CsvReader(fileReader))
{
csvReader.Configuration.IsHeaderCaseSensitive = false;
csvReader.Configuration.RegisterClassMap<OptOutClassMap>();
while (csvReader.Read())
{
var record = csvReader.GetRecord<T>();
yield return record;
}
}
}在我的类Map类中:
public string Email { get; set; }
public class CustomClassMap : CsvHelper.Configuration.CsvClassMap<CustomMap>
{
public override void CreateMap()
{
Map(m => m.Email);
}
}发布于 2014-06-25 18:44:11
看起来您没有使用正确的ClassMap。从上面的代码中,行:
csvReader.Configuration.RegisterClassMap<OptOutClassMap>();应:
csvReader.Configuration.RegisterClassMap<CustomClassMap>();修改后的代码按预期工作。
static void Main(string[] args)
{
var records = CSVreader<Record>("TextFile1.csv");
}
public class Record
{
public string Email { get; set; }
}
public class CustomClassMap : CsvHelper.Configuration.CsvClassMap<Record>
{
public override void CreateMap()
{
Map(m => m.Email);
}
}
public static IEnumerable<T> CSVreader<T>(string fileName)
{
using (var fileReader = File.OpenText(fileName))
using (var csvReader = new CsvHelper.CsvReader(fileReader))
{
csvReader.Configuration.IsHeaderCaseSensitive = false;
csvReader.Configuration.RegisterClassMap<CustomClassMap>();
while (csvReader.Read())
{
var record = csvReader.GetRecord<T>();
yield return record;
}
}
}https://stackoverflow.com/questions/24391612
复制相似问题