我有一个MVC应用程序,我使用CsvHelper以允许用户在excel中导出报表数据。我想更改导出文件中某些列标题的值。在报告模型中,我已经定义了像这样的属性
public string DateSection1Finished { get; set; }
public string TimeSection1Finished { get; set; }
public string DateSection2Finished { get; set; }
public string TimeSection2Finished { get; set; }
当前输出的Excel示例
现在,如果我更改属性的值并更新我的代码库中的所有引用,我可以在excel文档中看到列标题名称更新。但是,我想知道是否可以使用属性上方的属性并将其映射到Excel文件输出中的标题值
[System.ComponentModel.DataAnnotations.Display(Name = "NewColumnHeaderName")]
public string DateSection1Finished { get; set; }
所需输出的Excel示例
答案 0 :(得分:3)
我想应该可以使用runtime mapping;但这太复杂了。
我只想创建一个ClassMap映射,指定有问题的属性的列名docs
public sealed class MyClassMap : CsvClassMap<MyClass>
{
public MyClassMap()
{
Map(m => m.DateSection1Finished).Name("NewColumnHeaderName");
}
}