【问题标题】:MVC: Use Display name as column header with CSVHelperMVC:使用显示名称作为 CSVHelper 的列标题
【发布时间】:2015-10-26 14:03:34
【问题描述】:

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

这可以实现吗?

【问题讨论】:

    标签: asp.net-mvc csvhelper


    【解决方案1】:

    我想应该可以使用runtime mapping;但这会过于复杂。

    我将只创建一个 ClassMap 映射,为相关属性指定列名docs

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

    【讨论】:

    • 嗨,drneel - 感谢您的建议,我会试一试。非常感谢保罗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 2015-08-15
    相关资源
    最近更新 更多