MVC:使用显示名称作为CSVHelper的列标题

时间:2015-10-26 14:03:34

标签: asp.net-mvc csvhelper

我有一个MVC应用程序,我使用CsvHelper以允许用户在excel中导出报表数据。我想更改导出文件中某些列标题的值。在报告模型中,我已经定义了像这样的属性

    public string DateSection1Finished { get; set; }
    public string TimeSection1Finished { get; set; }
    public string DateSection2Finished { get; set; }
    public string TimeSection2Finished { get; set; }

当前输出的Excel示例

enter image description here

现在,如果我更改属性的值并更新我的代码库中的所有引用,我可以在excel文档中看到列标题名称更新。但是,我想知道是否可以使用属性上方的属性并将其映射到Excel文件输出中的标题值

[System.ComponentModel.DataAnnotations.Display(Name = "NewColumnHeaderName")]
public string DateSection1Finished { get; set; }

所需输出的Excel示例

enter image description here 这可以实现吗?

1 个答案:

答案 0 :(得分:3)

我想应该可以使用runtime mapping;但这太复杂了。

我只想创建一个ClassMap映射,指定有问题的属性的列名docs

public sealed class MyClassMap : CsvClassMap<MyClass>
{
    public MyClassMap()
    {
        Map(m => m.DateSection1Finished).Name("NewColumnHeaderName");
    }
}