|
分類:[Windows 全般]
VB2010でツールを作成しており、途中Excel読み込みをしています。
ADODBを使用して読み込みをするのですが、途中読み込まない箇所が出てきています。 改善方法が分からず、ご教示願います。
読み込み対象としているExcelは拡張子が(.xls)のExcelファイルなのですが、(.xlsx)のファイルを 互換変換し保存されたファイルのようで、ADODB JET.OLEDBで読み込もうとしても「定義されているフィールドが多すぎます」との内容でエラーになってしまいます。
そこでACE.OLEDBで読み込もうとしているのですが、なぜか11列目だけが正常に読み込まれません。
色々試してみたところ、
IMEX=0に設定→読み取り成功 IMEX=1に設定→読み込み失敗 IMEX=2に設定→読み取り失敗
HDR=YESに設定→読み取り成功 HED=NOに設定→読み取り失敗
Windows7 64bit Microsoft Office2010を使用しています。
解決策の教示よろしくお願いいたします。
以下、ソースを記述します。
Using cn As New System.Data.OleDb.OleDbConnection Using cm As New System.Data.OleDb.OleDbCommand Using da As New System.Data.OleDb.OleDbDataAdapter Dim ds As New DataSet
Dim FileName As String = e.Data.GetData(DataFormats.FileDrop)(0)
Dim SheetName As String = "Sheet1" cn.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;Data source=" + FileName + ";Extended properties=""Excel 12.0;IMEX=1;HDR=No""" cm.Connection = cn cm.CommandText = "select * from [" & SheetName & "$]" da.SelectCommand = cm da.Fill(ds, SheetName) DataGridView1.DataSource = ds DataGridView1.DataMember = SheetName End Using End Using End Using
|