tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
Excel ファイルをADO.NETを使ってDataGridViewに表示(VB.NET) ( No.0 )  [親スレッドへ]
日時: 2010/02/14 23:40
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[グリッド関係][ファイル入出力][エクセル][データベース]              *
* キーワード:xlsファイル,Excel ファイル,データー グリッドビュー,ADO.NET,       *
***********************************************************************************
投 稿 日 : 2010/01/26
投 稿 者 : 花ちゃん

CSVファイルをADO.NETを使ってDataGridViewに表示(VB.NET) に続き、今度はCSV ファイルの
代りに、Excel の xls 形式のファイルを使って読み込み表示の設定方法を掲載しました。

使用するデーターは、下図のようにExcel で作成し、Excel 97-2003 ブック 形式で保存して
下さい。
必ず、最初は、下図と同じデーター(ファイル名・シート名も含めて)を使って下さい。
作るのが面倒な人は下記よりダウンロードしてお使い下さい。
http://www.hanatyan.sakura.ne.jp/bbs_gif/test.zip
(動作確認後、違うデーターも表示するようにして試して見て下さい。)


尚、細部の設定・装飾については、下記のサイトに Tips が多く掲載されているので参考に
されたらいいかと思います。

DOBON.NET さんの DataGridView編メニュー
http://dobon.net/vb/dotnet/datagridview/index.html

--------------------------------------------------------------------------------------
Form に DataGridView を下図のように貼り付け、test.xls ファイルを この EXE の
入っているフォルダーに入れて下記コードをコピーして、実行して見て下さい。

'===================================================================================================
'動作確認:WindowsVista VB2008(EE) Framework 3.5 / WindowsXP VB2005(EE) Framework 2.0
'[Option Compare Text] [Option Explicit On] [Option Infer On] [Option Strict On]で設定
'========1=========2=========3=========4=========5=========6=========7=========8=========9=========0
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, _
                       ByVal e As System.EventArgs) Handles Me.Load
'ExcelのファイルをADO.NETを使ってDataGridViewに表示
   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
      '※注意 Excelファイルのフルパスを設定(この設定では、*.xlsx 形式は読み込めない)
      Dim FileName As String = System.IO.Path.Combine(Application.StartupPath(), "Test.xls")
      'Excelファイルのシート名(Excel 上で設定したシート名)を設定
      Dim SheetName As String = "Sheet1"
      'データベースに接続するための情報を設定する
      'HDR 等の接続文字列のオプションの詳細説明は下記をご覧下さい。
      'http://hanatyan.sakura.ne.jp/vbhlp/dao_002.htm
      cn.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;Data source=" & _
                           FileName & ";Extended properties=""Excel 8.0;HDR=YES;IMEX=1"""
      'コネクションの設定
      cm.Connection = cn
      'データソースで実行するSQL文の設定
      cm.CommandText = "select * from [" & SheetName & "$]"
      'データソース内のレコードを選択するためのSQLコマンドの設定
      da.SelectCommand = cm
      'データを取得する
      da.Fill(ds, SheetName)
      'データグリッドに表示するデータソースを設定
      DataGridView1.DataSource = ds
      'グリッドを表示するための、DataSource 内のリストを設定
      DataGridView1.DataMember = SheetName
   End Using
   End Using
   End Using
End Sub

----------------------------------------------------------------------------------------------
尚、CSVファイルをADO.NETを使ってDataGridViewに表示(VB.NET) と同じような書き方(下記)でも
結構です。
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
'ExcelのファイルをADO.NETを使ってDataGridViewに表示
   Using cn As New System.Data.OleDb.OleDbConnection
      '※注意 Excelファイルのフルパスを設定(この設定では、*.xlsx 形式は読み込めない)
      Dim FileName As String = System.IO.Path.Combine(Application.StartupPath(), "Test.xls")
      'Excelファイルのシート名(Excel 上で設定したシート名)を設定
      Dim SheetName As String = "Sheet1"
      'データベースに接続するための情報を設定する
      'HDR 等の接続文字列のオプションの詳細説明は下記をご覧下さい。
      'http://hanatyan.sakura.ne.jp/vbhlp/dao_002.htm
      cn.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;Data source=" & _
                 FileName & ";Extended properties=""Excel 8.0;HDR=YES;IMEX=1"""
      Using da As System.Data.OleDb.OleDbDataAdapter = _
         New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" & SheetName & "$]", cn)
         Dim ds As New DataSet
         da.Fill(ds, SheetName & "$")        'この場合のテーブル名はExcel のシート名です。
         DataGridView1.DataSource = ds.Tables(SheetName & "$")
      End Using
   End Using
End Sub

----------------------------------------------------------------------------------------------
上記が理解できたなら、下記も試して見て下さい。(マイクロソフト サポート オンライン)

 Visual Basic .NET と ADO.NET を使用して Excel ブックのレコードの取得と変更を行う方法
 http://support.microsoft.com/default.aspx?scid=kb;ja;316934
 リンクがつながらない場合、上記のタイトルで検索して見て下さい。
----------------------------------------------------------------------------------------------

使用データーファイル                 上記実行図



 [スレッド一覧へ] [親スレッドへ]