DataGridViewに求めたい値を表示させるには?

解決


きんぴら  2009-01-23 19:15:00  No: 145687

たびたびすいません。
いろいろ調べてみたのですが良くわからないのでお願いします。
前回の質問同様、エクセルファイルを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 ※

対処、または回避する方法として何かアドバイスをいただけないでしょうか。
よろしくお願いします。


オショウ  2009-01-24 20:47:06  No: 145688

エクセルをADO経由で読み込む場合の既出のトラブルですネ!

データ数(行数)は、8行未満の場合、データの型の扱いは
思った結果となりません。

http://support.microsoft.com/kb/257819/ja/

こちらをご参照下さい。

以上。


きんぴら  2009-01-26 18:30:28  No: 145689

何とか回避する方法でできたような気がします…。
オショウさんありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加