使用 CsvHelper 控制头字段名称

dis*_*r-5 4 c# csvhelper

使用 CsvHelper 6.1.0 写入 CSV 文件时,文档仅一次提到在写入时控制标题名称:

“写作时,只使用名字。”

我的代码符合给出的示例:

Map(m => m.ReportingGroup).Name("Reporting Group");
Map(m => m.Merchant);
Map(m => m.ActivityDate).Name("Activity Date");
Map(m => m.SettlementDate).Name("Settlement Date");
Run Code Online (Sandbox Code Playgroud)

写操作期间不写入空格!

报告组、商户、活动日期、结算日期

如果需要,我的 Read() 和 Write():

public static IEnumerable<TR> Read<TR, TMap>(string filename)
    where TMap : ClassMap
{
    List<TR> records;
    using (var sr = new StreamReader(filename))
    {
        var csv = new CsvReader(sr);
        csv.Configuration.RegisterClassMap<TMap>();
        records = csv.GetRecords<TR>().ToList();
    }
    return records;
}

public static void Write<T>(IEnumerable<T> records, string filename, Logger logger)
{
    var enumerable = records as IList<T> ?? records.ToList();
    logger?.Debug($"Writing {enumerable.Count} records to file: {filename}");
    using (var fcreate = File.Open(filename, FileMode.Create))
    using (var writer = new StreamWriter(fcreate))
    {
        var csv = new CsvWriter(writer);
        csv.WriteRecords(enumerable);
    }
    logger?.Debug("Writing complete.");
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*ose 5

编写时需要注册类映射。看起来你在阅读时有它,但在写作时却没有。