映射/转换以使用LinqToExcel处理Enum模型

时间:2014-05-02 11:31:17

标签: c# asp.net-mvc enums linq-to-excel

我在处理Excel文件的一列时遇到问题我尝试导入到我的数据库。该属性指的是Enum模型。我尝试将整数值(指Enum索引)或字符串值本身放入,但显然它不起作用。

我将如何使用(我假设)AddTransformation方法来处理它?<​​/ p>

4 个答案:

答案 0 :(得分:2)

我能够通过将单元格中的值映射到转换函数中的枚举值来实现此目的:

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;
    }
});

答案 1 :(得分:0)

是的,试试AddTransformation方法,看看是否有效。

答案 2 :(得分:0)

解决方案是创建一个新对象并手动映射该属性。 Enum以这种方式处理:

MyEnumProperty = (MyEnumProperty)Convert.ToInt32(c["ColumnNameInExcel"])

答案 3 :(得分:0)

我尝试使用Double转换为枚举问题的无效转换的AddTransformation方法。

excelFile.AddTransformation<Table>(x => x.Company, cellValue => (MyEnumProperty)Convert.ToInt32(cellValue));