1

データベースにインポートしようとしている Excel ファイルの 1 つの列の処理で問題が発生しています。プロパティは Enum モデルを参照します。整数値 (Enum インデックスを参照) または文字列値自体を入れようとしましたが、明らかに機能しません。

AddTransformation メソッドを使用してこれを処理するにはどうすればよいでしょうか (私はそう思います)。

4

4 に答える 4

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;
    }
});
于 2014-08-15T19:42:09.567 に答える
0

Double から enum への無効なキャストで AddTransformation メソッドを試しました。

excelFile.AddTransformation<Table>(x => x.Company, cellValue => (MyEnumProperty)Convert.ToInt32(cellValue));
于 2016-06-29T02:19:51.997 に答える
0

解決策は、新しいオブジェクトを作成し、プロパティを手動でマップすることでした。Enum は次のように処理されました。

MyEnumProperty = (MyEnumProperty)Convert.ToInt32(c["ColumnNameInExcel"])
于 2014-05-03T10:10:07.323 に答える