tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルExcelの読み書き
記事No4799
投稿日: 2007/01/15(Mon) 01:57
投稿者Tomy
VB初心者です。
ここは初めて訪れるので至らない点がありますがよろしくお願いします。
今、VB2005でButton1でExcelの範囲(B1:F10)までの値を読み込んで、Button2で別のExcelファイルに書き込む方法を探しています。良い方法はありますでしょうか?
また参考になるものがありましたら教えていただければ幸いです。
宜しくお願いします。

環境 WindowsXP,VB2005,Excel2003

[ツリー表示へ]
タイトルRe: Excelの読み書き
記事No4800
投稿日: 2007/01/15(Mon) 09:12
投稿者Blue
こちらのサイトにVB.NETでExcelを扱うサンプルが載っています。
まずそちらを参考にしてみて不明な点等ありましたら、再度どこがどのようにわからないのか
を具体的に質問してください。

http://hanatyan.sakura.ne.jp/dotnet/Excelflm.htm

[ツリー表示へ]
タイトルRe^2: Excelの読み書き
記事No4815
投稿日: 2007/01/15(Mon) 22:47
投稿者Tomy
返信ありがとうございます。
調べたところ、読込はDatasetを使って読み込めるようになりました。
しかし、Datasetを使った書込み作業についてはあまり書かれていませんでした(調査不足?)
できればDatasetを利用したExcelファイルへの書込み方法を教えていただければ幸いです。
書き込み先 C:\Data2.xls
'読込

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i, j As Integer
        Dim dSet As DataSet = New DataSet
        Dim dAdp As OleDb.OleDbDataAdapter
        Dim cn As OleDb.OleDbConnection

        cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   "Data Source= C:\Data1.xls;" & _
                   "Extended Properties=""Excel 8.0;HDR=NO;""")


        dAdp = New OleDb.OleDbDataAdapter("Select * From [Sheet1$B10:F10]", cn)
        dAdp.Fill(dSet)

        For i = 0 To dSet.Tables(0).Rows.Count() - 1
            For j = 0 To dSet.Tables(0).Columns.Count() - 1
                Debug.Write(dSet.Tables(0).Rows(i)(j) & ControlChars.Tab)

            Next
            Debug.WriteLine("")

        Next
    End Sub

[ツリー表示へ]
タイトルRe^3: Excelの読み書き
記事No4818
投稿日: 2007/01/16(Tue) 10:46
投稿者魔界の仮面弁士
> 調べたところ、読込はDatasetを使って読み込めるようになりました。
DataSet「で」読み込んだのではなく、DataSet「に」読み込んだのですよね。

読み込みのために使われたのは、OleDbDataAdapter (の中の OleDbCommand) かと。

> しかし、Datasetを使った書込み作業についてはあまり書かれていませんでした(調査不足?)
検索したら、このあたりが見つかりました。
http://support.microsoft.com/kb/316756/
http://support.microsoft.com/kb/316934/

[ツリー表示へ]