- 日時: 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 リンクがつながらない場合、上記のタイトルで検索して見て下さい。 ----------------------------------------------------------------------------------------------
使用データーファイル 上記実行図
|