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

3

我有一个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示例

enter image description here 能够实现这个吗?

1个回答

3
我想使用运行时映射应该是可能的,但那会过于复杂。我只需要创建一个ClassMap映射,指定需要的属性的列名文档
public sealed class MyClassMap : CsvClassMap<MyClass>
{
    public MyClassMap()
    {
        Map(m => m.DateSection1Finished).Name("NewColumnHeaderName");
    }
}

嗨,drneel - 感谢您的建议,我会尝试一下。非常感谢 Paul - Paul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接