0

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 ファイルを変更して再度アップロードできるようにしたいと思います。

よろしくお願いします。私の英語で申し訳ありません。

4

1 に答える 1