たびたびすいません。
いろいろ調べてみたのですが良くわからないのでお願いします。
前回の質問同様、エクセルファイルをOLEDBコネクションで接続し、DataGridViewに表示しようとしています。
Dim conStr As New OleDbConnectionStringBuilder()
conStr.Provider = "Microsoft.JET.OLEDB.4.0"
conStr.DataSource = "C:\..."
conStr("Extended Properties") = "Excel 8.0;HDR=YES;IMEX=1"
Dim strCommandText As String = "SELECT * FROM [Sheet1$]"
Dim Adapter As New OleDbDataAdapter(strCommandText, conStr.ConnectionString)
Dim Table as DataTable = New DataTable
Adapter.Fill(Table)
DataGridView1.DataSource = Table
表示するエクセルファイル(Sheet1)を下記のように用意しました。
A列は文字列型、B列は数値、C列は日付(ss.00形式)となります。
A |B |C
11.35 |11.35 |11.35
11.45 |11.45 |11.45
11.45 |11.55 |11.55
この場合、
DataGridView1.Columns(2).DefaultCellStyle.Format = "ss.ff"
により求めている値を表示することができましたが、
下記のように型が混在すると求めたい結果を返してくれません。
A |
11.35 | <- 文字列型 ----> 結果 11.35
11.45 | <- 日付(ss.00形式) ----> 結果 11.45
11.45 | <- 日付(ss.00形式) ----> 結果 12.45 ※
対処、または回避する方法として何かアドバイスをいただけないでしょうか。
よろしくお願いします。
エクセルをADO経由で読み込む場合の既出のトラブルですネ!
データ数(行数)は、8行未満の場合、データの型の扱いは
思った結果となりません。
http://support.microsoft.com/kb/257819/ja/
こちらをご参照下さい。
以上。
何とか回避する方法でできたような気がします…。
オショウさんありがとうございました。
ツイート | ![]() |