我在处理要导入数据库的 Excel 文件的一列时遇到问题。该属性指的是 Enum 模型。我尝试放置整数值(指 Enum 索引)或字符串值本身,但显然它不起作用。
我将如何使用(我假设)AddTransformation 方法来处理这个问题?
我在处理要导入数据库的 Excel 文件的一列时遇到问题。该属性指的是 Enum 模型。我尝试放置整数值(指 Enum 索引)或字符串值本身,但显然它不起作用。
我将如何使用(我假设)AddTransformation 方法来处理这个问题?
我能够通过将单元格中的值映射到转换函数中的枚举值来实现这一点:
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;
}
});
解决方案是创建一个新对象并手动映射属性。枚举是这样处理的:
MyEnumProperty = (MyEnumProperty)Convert.ToInt32(c["ColumnNameInExcel"])
是的,试试这个AddTransformation
方法,看看是否有效。
我尝试了从 Double 到枚举问题的无效转换的 AddTransformation 方法。
excelFile.AddTransformation<Table>(x => x.Company, cellValue => (MyEnumProperty)Convert.ToInt32(cellValue));