0

Microsoft.ACE.OLEDB.12.0データ プロバイダーを使用して、Excel .xlsx ワークブックからすべてのシートを DataSet の個別の DataTables に読み込むサブを作成しました。

今、私は複数のシートを持つ 1 つのワークブックを持っています - すべて同じ列名を持っています - そして私がやろうとしているのは、それらがすべてデータセットにロードされたら、それらをすべて 1 つの大きな DataTable にマージすることです。

私の問題は、すべてのシートが同じ列を持っていても、各シートのデータに基づいて、同じ列がデータ型を取得することもあれば、DataSet の異なるテーブルでデータ型Doubleを取得することもあるため、関数私にエラーを与えています。StringMerge

どうすればこれを修正できますか? 事前に列のデータ型をすべて文字列に設定する方法はありますか、またはマージ中に列の型を無視する方法はありますか、またはこれを完全に解決するより良い方法はありますか?

ありがとう。

4

1 に答える 1

2

私は以前にこれを扱ったことがあります..私は主に記憶から行こうとしています。設定できる TypeGuessRows というレジストリ エントリがあります。これにより、Excel の型の推測が無効になります。

さらに、ACE 接続文字列に IMEX 引数を追加してみてください。

他の補足事項: これはおそらく重複した質問です。

編集: Google から、レジストリの場所: http://support.sas.com/kb/31/765.html

別の SO 役立つ投稿:レジストリ キーを変更せずに Excel InterMixed DataType を読み取る

于 2013-01-11T18:49:52.127 に答える