xlx/xlxs ファイルからデータを取得しています。私は実際に ExcelDataReader ライブラリを使用して、ExcelDataReader プラグインを使用してデータを DataSet に保存しています。
excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
excelDataTable = excelReader.AsDataSet(conf);
今、私は System.Data.DataSet を厳密に型指定されたデータセットに変換しようとしています。
public DocAdmin.GHDefinitionDataTable ConvertDataTable(DataTable dtOriginal)
{
DocAdmin.GHDefinitionDataTable ghDefiniton = new DocAdmin.GHDefinitionDataTable();
int ExcelRowNumber = 1;
foreach (DataRow row in dtOriginal.Rows)
{
++ExcelRowNumber;
try
{
ghDefinition.ImportRow(row);
}
catch (ArgumentException ex)
{
OperationMessage message = new OperationMessage();
this.ShowMessage(message );
}
}
return ghDefinition;
}
次の例外メッセージが表示されます。
入力文字列の形式が正しくありません。SAHasta 列に格納できませんでした。期待される型は Decimal です。
これは、意図的にセルに「NULL」値を設定しているためです。
行番号 (Excel ファイルのセル番号) を指定してメッセージを表示したいのですが、++ExcelRowNumber を使用してこれを表示していますが、厳密に型指定された列名とデータ型を取得する方法がわかりません。私に例外を与えているデータセット。SAHasta 列に保存できませんでしたが、スペイン語でカスタム メッセージを作成する必要があります。
例外から列名とデータ型を取得する方法があるかどうか疑問に思っています。問題が発生した値をユーザーに指定して、Excel ファイルを変更して再度アップロードできるようにしたいと思います。
よろしくお願いします。私の英語で申し訳ありません。