【发布时间】:2014-05-02 11:31:16
【问题描述】:
我在处理要导入数据库的 Excel 文件的一列时遇到问题。该属性指的是 Enum 模型。我尝试将整数值(指 Enum 索引)或字符串值本身放入,但显然它不起作用。
我将如何使用(我假设)AddTransformation 方法来处理这个问题?
【问题讨论】:
标签: c# asp.net-mvc enums linq-to-excel
我在处理要导入数据库的 Excel 文件的一列时遇到问题。该属性指的是 Enum 模型。我尝试将整数值(指 Enum 索引)或字符串值本身放入,但显然它不起作用。
我将如何使用(我假设)AddTransformation 方法来处理这个问题?
【问题讨论】:
标签: c# asp.net-mvc enums linq-to-excel
我能够通过将单元格中的值映射到转换函数中的枚举值来实现这一点:
excel.AddTransformation<DataImportJob>(x => x.Status, cellValue =>
{
switch (cellValue)
{
case "Failed":
return JobStatusType.Failed;
case "InProgress":
return JobStatusType.InProgress;
case "Scheduled":
return JobStatusType.Scheduled;
case "Success":
return JobStatusType.Success;
default:
return JobStatusType.Undefined;
}
});
【讨论】:
是的,试试AddTransformation 方法,看看是否可行。
【讨论】:
解决方案是创建一个新对象并手动映射属性。枚举是这样处理的:
MyEnumProperty = (MyEnumProperty)Convert.ToInt32(c["ColumnNameInExcel"])
【讨论】:
我尝试了 AddTransformation 方法,从 Double 到枚举的无效转换问题。
excelFile.AddTransformation<Table>(x => x.Company, cellValue => (MyEnumProperty)Convert.ToInt32(cellValue));
【讨论】: