データベースにインポートしようとしている Excel ファイルの 1 つの列の処理で問題が発生しています。プロパティは Enum モデルを参照します。整数値 (Enum インデックスを参照) または文字列値自体を入れようとしましたが、明らかに機能しません。
AddTransformation メソッドを使用してこれを処理するにはどうすればよいでしょうか (私はそう思います)。
データベースにインポートしようとしている Excel ファイルの 1 つの列の処理で問題が発生しています。プロパティは 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;
}
});
Double から enum への無効なキャストで AddTransformation メソッドを試しました。
excelFile.AddTransformation<Table>(x => x.Company, cellValue => (MyEnumProperty)Convert.ToInt32(cellValue));
解決策は、新しいオブジェクトを作成し、プロパティを手動でマップすることでした。Enum は次のように処理されました。
MyEnumProperty = (MyEnumProperty)Convert.ToInt32(c["ColumnNameInExcel"])