Epplus:如何使 "LoadFromCollection" 在模型中使用 [DisplayFormat()] 属性
Epplus: How to make "LoadFromCollection" use [DisplayFormat()] attributes in model
我有一个 ActionResult(在 MVC 5 网站中)成功使用 Epplus 将数据集导出到 Excel 文档。
在 ActionResult 代码块中,我使用这样的代码将列格式化为短日期。如果没有此代码,日期列将显示为 int 值。
// format date columns as date
worksheet.Column(6).Style.Numberformat.Format =
DateTimeFormatInfo.CurrentInfo.ShortDatePattern;
但是,在模型中,我已经将其定义为属性。它在“查看”页面上运行良好,但不会将该列格式化为短日期——因此,上面显示的代码。
[Column(TypeName = "date")]
[DisplayName("Exit Date")]
**[DisplayFormat(DataFormatString = "{0:d}")]**
public DateTime ExitDate { get; set; }
为了提供更多背景信息,我从一个集合中加载了我的工作表。
worksheet.Cells["A5"].LoadFromCollection(Collection: exportQuery, PrintHeaders: true);
有没有一种方法可以扩展 LoadFromCollection,使工作表不仅加载集合内容,还加载模型中存在的格式化属性?收集了 "DisplayName" 个属性,那么有没有办法在不编写单独代码的情况下也收集 "DisplayFormat" 个属性?
EPPlus 不幸的是没有实现对 DisplayFormat
的支持。
该库是开源的,因此您可以在 codeplex
上找到 LoadFromCollection
及其重载的完整实现
回答你的问题:恐怕你将不得不为此编写单独的代码。
我有一个 ActionResult(在 MVC 5 网站中)成功使用 Epplus 将数据集导出到 Excel 文档。
在 ActionResult 代码块中,我使用这样的代码将列格式化为短日期。如果没有此代码,日期列将显示为 int 值。
// format date columns as date
worksheet.Column(6).Style.Numberformat.Format =
DateTimeFormatInfo.CurrentInfo.ShortDatePattern;
但是,在模型中,我已经将其定义为属性。它在“查看”页面上运行良好,但不会将该列格式化为短日期——因此,上面显示的代码。
[Column(TypeName = "date")]
[DisplayName("Exit Date")]
**[DisplayFormat(DataFormatString = "{0:d}")]**
public DateTime ExitDate { get; set; }
为了提供更多背景信息,我从一个集合中加载了我的工作表。
worksheet.Cells["A5"].LoadFromCollection(Collection: exportQuery, PrintHeaders: true);
有没有一种方法可以扩展 LoadFromCollection,使工作表不仅加载集合内容,还加载模型中存在的格式化属性?收集了 "DisplayName" 个属性,那么有没有办法在不编写单独代码的情况下也收集 "DisplayFormat" 个属性?
EPPlus 不幸的是没有实现对 DisplayFormat
的支持。
该库是开源的,因此您可以在 codeplex
上找到LoadFromCollection
及其重载的完整实现
回答你的问题:恐怕你将不得不为此编写单独的代码。