这是CsvHelper库记录的标准代码,用于在生成CSV文件时启用标题行
var dbAccounts = _dbcontext.Accounts.ToList();
using (TextWriter textWriter = new StreamWriter(path, false, Encoding.GetEncoding(28591)))
{
using (var csvWriter = new CsvWriter(textWriter, _csvConfiguration))
{
csvWriter.Configuration.RegisterClassMap<CsvMappedAccount>();
csvWriter.WriteHeader<CsvMappedAccount>();
foreach (var dbAccount in dbAccounts)
{
csvWriter.WriteRecord(dbAccount);
}
textWriter.Flush();
}
}
这是注册班级
public sealed class CsvMappedAccount: CsvClassMap<Account>
{
public CsvMappedAccount()
{
Map(m => m.ID).Name("ID");
Map(m => m.Name).Name("AccountName");
Map(m => m.AccountNo).Name("AccountNo");
}
}
然而,第一行只是打印为空,而第二行打印实际记录就好了,虽然这行在上面的代码中是明确的
csvWriter.WriteHeader<CsvMappedAccount>();
我已经尝试过官方网站和文档,似乎没有这个问题,并且没有建议启用标题行打印的不同实现。