• ベストアンサー

VB.NETで.xlsファイル読み取り

dataGridViewにあるフォルダ内の複数.xlsファイルを読み取りして表示したいです。一件の固定パスだったら、できましたけど、複数件は。。。? イメージ図も添付いたします。 よろしくお願いします。 環境: Windows XP Visual studio 2005 VB.NET

この投稿のマルチメディアは削除されているためご覧いただけません。

質問者が選んだベストアンサー

  • ベストアンサー
  • rk_les
  • ベストアンサー率63% (23/36)
回答No.4

こんにちは。 そういうことでしたか^^; Sub SetDGV() For Each strFilePath As String In System.IO.Directory.GetFiles("C:\hoge\hogehoge\hoge", "*.xls") '//****** '*ここにxlsをDataGridViewに読み込む処理を記述 '* '*xlsファイルパス:strFilePath '* '*DataGridViewの一番最後の行番号からAddするようにしてください。 '******// Next strFilePath End Sub コメント部分に表示処理を入れるだけで完成です。

vs2005
質問者

お礼

(ToT)ありがとうございます。 早速やってみます。

その他の回答 (3)

  • rk_les
  • ベストアンサー率63% (23/36)
回答No.3

こんにちは。 現在実行環境がないのと時間がないので参考サイトを紹介させて頂きます。 どぼん様 http://dobon.net/vb/dotnet/form/openfiledialog.html openFileDialogを使えばファイルを簡単に指定することができます。 複数指定することもできますので参考にしてください。 前回記述したDragDrop,DragEnterイベントは不必要になります。 参考までに

vs2005
質問者

お礼

有難うございました。

vs2005
質問者

補足

ごめなさい、僕の説明が良くないです。 フォルダは固定パスで、画面を開くと自動的にその固定パスのフォルダから各.xlsファイルを読み取りし全部一覧表示したかったです。

  • rk_les
  • ベストアンサー率63% (23/36)
回答No.2

Dim strFolderPass As String = "" Private Sub ListBox1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) = False Then Return End If 'ドラッグしているファイル/フォルダの取得 Dim FilePath() As String = CType(e.Data.GetData(DataFormats.FileDrop), String()) For i As Integer = 0 To FilePath.Length - 1 Step 1 strFolderPass += FilePath(i) Next i e.Effect = DragDropEffects.Copy End Sub Private Sub ListBox1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop For Each strFilePath As String In System.IO.Directory.GetFiles(strFolderPass, "*.xls") ListBox1.Items.Add(strFilePath) Next strFilePath End Sub Private Sub ListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick If ListBox1.SelectedIndex >= 0 Then '//****** '*ここにxlsをDataGridViewに読み込む処理を記述 '* '*xlsファイルパス取得方法:ListBox1.SelectedItem.ToString() '* '*DataGridViewに読み込む際For文で回してAddしていく。 '* '******// End If End Sub //********** **********// の中に処理を記述してください。 For文で回す際0から始めると上書きされるのでDataGridView1.Rows.Countを使ってDataGridViewの一番最後の行番号から始めてください。

vs2005
質問者

補足

いつもありがとうございます。 (*人(エ)<)感謝(>(エ)人*)感謝 ListBoxを使わない場合の書き方も教えていただけませんでしょうか お願いします。

  • rk_les
  • ベストアンサー率63% (23/36)
回答No.1

こんにちは。 1件の固定パスで出来たということなのでそこの部分は省かせていただきますね。 ListBoxかなにかにフォルダに入っているxlsファイルを読み取りAddします。フォルダ内ファイルの読み取りはSystem.IO.DirectoryクラスのGetFiles メソッドなどを使用してください。 追加されたItemをDoubleClickなどのイベントでDataGridViewに追加するイベントを書けば大丈夫です。 手が空いたらサンプルでも乗せたいと思います。

vs2005
質問者

補足

はい、有難うございます。 お願いします。

関連するQ&A