我的问题与EPPlus 4.5.2.1和.LoadFromCollection()方法有关。我在.NET Core 2.1 MVC项目中使用此工具,以从数据库检索数据到模型中,并将其推入Excel文件进行下载。
假设我们有一个对象:
namespace ThingsToDo
{
public class ActivityDate
{
DateTime date { get; set; }
String timeSpan { get; set; }
public override string ToString()
{
return $"{date.ToShortDateString()} {timeSpan}";
}
}
}
然后我们有另一个使用此对象的对象(模型):
namespace ThingsToDo
{
public class ActivityInfo
{
public string ActivityName { get; set; }
public ActivityDate ActivityDate { get; set;}
}
}
为简便起见,假设List包含对象(所有数据均不可为空)。
如果我做类似的事情:
public IActionResult getExcel()
{
var pck = new ExcelPackage();
//Run my model's query
List<ActivityInformation> model = //See above, assume this list has data in it
//Create a Worksheet
var wsToReturn = pck.Workbook.Worksheets.Add("Sheet 1");
wsToReturn.Cells["A1"].LoadFromCollection(model, true, OfficeOpenXml.Table.TableStyles.Medium9);
return File(pck.GetAsByteArray(), FILE_TYPE_EXCEL, "Report.xlsx");
}
我已经阅读了参考文献并仔细阅读了它们的样本(如果您是阅读本文的人,并且看起来很不错),但是似乎无法弄清楚是否有可能将其解析为正确的方法通过其to字符串显示ActivityDate。
还是我被降级为创建日期已被分割的“ ExcelOutput”对象?
我相信这与Question #34209678有关,所以我打赌我不走运!
感谢您的建议和帮助!
为在类中添加“公共”而编辑(实际上,它们被声明为公共,我没有特殊原因省略了它们;可能是懒惰。)