Отображение / Преобразование для обработки модели Enum с LinqToExcel

У меня проблема с обработкой одного столбца файла Excel, который я пытаюсь импортировать в свою базу данных. Свойство относится к модели Enum. Я попытался поместить целые значения (ссылаясь на индекс Enum) или строковое значение, но, очевидно, это не работает.

Как мне поступить с этим, используя (я предполагаю) метод AddTransformation?

4 ответа

Решение

Решением было создать новый объект и сопоставить свойство вручную. Enum обрабатывался так:

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

Я смог сделать это, сопоставив значение из ячейки со значением перечисления в функции преобразования:

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 с Invalid приведение от Double до enum проблема.

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

Yea, try the AddTransformation метод и посмотреть, если это работает.

Другие вопросы по тегам