VB.NETからWebサーバーにあるデータをとってエクセルに表示するには?

解決


  2006-06-07 03:55:29  No: 131739

はじめまして良と申します。VB.NET初めて二ヶ月です。会社の研修で

勤怠管理システムを作ることになり、私の役目は一括印刷画面機能

(つまりは〜年、〜月度、〜表(印刷する表)と指定してグリッドに

表示してある印刷フラグ押した人数分のシートを表示してそこに

取ってきたデータを貼り付ける作業)を担当することになりました。

主にやりたいことはVB.NETからWeb上のデータベースにアクセスして

必要なデータを取得してそのデータをVB.NETからエクセル画面を

起動してそのシートに貼り付ける。シートの数はグリッドに表示してある

印刷フラグにチェックした人数分用意する。シート名にはデータベースから

とってきたデータを反映させる。

サーバーの環境はPHP4でデータベースはMYSQLです。

今わからないのは

・WebサーバーからSQL文でデータを取るときにWebClientクラスを使うのだと

思うのですがどういう風にしたらちゃんとしたデータが取れるのか?

(まだ何度か試して全部接続に失敗してしまいました)

・人数分のシートを追加するにはどうすればいいのか?

・シート名にWebサーバーにあるデータベースからとってきたデータを

反映させるにはどうしたらいいのか?

すみません。たくさん調べたのですがわからないので質問しました。

すみませんがもしわかりましたら知恵を貸していただきたく思います。

印刷操作はエクセル画面にデータを丸投げしてそこで印刷作業を行おうと思います。


  2006-06-09 01:54:35  No: 131740

すみません。質問がかなり抽象的でした。質問を変えます。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim webClient As New System.Net.WebClient
        'クエリ文字列用のコレクションを作成
        Dim qc As New System.Collections.Specialized.NameValueCollection
        Dim strText As String
        '文字列をURLエンコードする
        strText = System.Web.HttpUtility.UrlEncode(TextBox1.Text)
 'HttpUtilityを使うためには参照の追加のsystems.webファイルを追加しなくてはいけない
        'コレクションに追加する
        qc.Add("q", strText)
        qc.Add("hl", "jp")
        'クエリ文字列を設定する
        webClient.QueryString = qc
        'HTTPサーバーへ接続する
        Dim sr As System.IO.Stream = _
            webClient.OpenRead("http://pca07") 'webClient.OpenRead  ’  ("http://pca07/?strSql=SELECT このはてなの間にSQL文を書く〜?")
        Dim srRead As New System.IO.StreamReader(sr)
        TextBox2.Text = srRead.ReadToEnd()
        srRead.Close()
    End Sub

これでサーバーのデータベースからデータは取れますか?あとデータをTextbox2ではなくてファイルに保存したい場合はどうすればいいでしょうか?

あとエクセルに取得したものを貼り付けたいんですが

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim xlApp As New Excel.Application
        Dim xlBooks As Excel.Workbooks = xlApp.Workbooks
        '新規のファイルを開く場合
        Dim xlBook As Excel.Workbook = xlBooks.Add
        Dim xlSheets As Excel.Sheets = xlBook.Worksheets
        Dim xlSheet As Excel.Worksheet = xlSheets.Item(1)
        xlApp.Visible = True    'Excelを表示(必ずとも表示しなくてもよい)
        '======================  起動処理ここまで  ===============

        '==================  データの入力処理  ==================  
        Dim xlRange As Excel.Range
        Dim strDat(2, 0) As Object
        xlRange = xlSheet.Range("A5:A7")    'データの入力セル範囲
        strDat(0, 0) = "10"                 'データの作成
        strDat(1, 0) = "20"
        strDat(2, 0) = "=Sum(A5:A6)"             '計算式
        xlRange.Value = strDat              'セルへデータの入力

    End Sub

これはVB.NETからデータを入力するコード(このソースはVBレスキューさんのホームページを引用しています)なんですがこれを応用して取得したデータをエクセルに貼り付けることはできませんか?自分でも調べますがもしわかりましたらぜひ知恵を貸していただきたく思います。


特攻隊長まるるう  2006-06-09 23:48:33  No: 131741

どうしてレスが付かないか知りたいですか?
欲張りすぎで重たいです。

あくまでボクの判断基準ですが、最初の質問に、
5行以内で回答をつけるのが不可能な場合、
少なくとも2日は放置しています。回答者の
多くは、別に暇を持て余して回答をしている
訳ではありません。

努力は認めます。それも無かったなら何も
書き込みませんでした。ただ、今回の質問は
分野が明らかに違う、WEB上でのデータ検索と、
ローカルでのエクセル操作の2つに分けるべき
ですし、もっと回答率を上げたいなら、Tips 
レベルに噛み砕くべきです。プロシージャ
単位の問題を1つ1つ解決するように考えて
みてはどうでしょう?

ただし、噛み砕いたからといって一気に
10も20も質問はしないでください。掲示板は
1人のためにあるものではありません。欲張らず、
1つ1つ解決してください。


花ちゃん  2006-06-10 01:08:33  No: 131742

>これはVB.NETからデータを入力するコード(このソースはVBレスキューさんのホームページを引用しています)なんですがこれを

転載は禁止しているはずですが、勿論許可もした覚えはありません。

変にカットされて紹介されたり、転載されると間違っていた場合等
修正したくても、修正できませんので必要ならリンクを貼るように
して下さい。

インターネット上の著作物でも、著作権はありますので注意しましょう。


  2006-06-10 03:26:10  No: 131743

こんばんは良です。

特攻隊長さん>
そうですね。欲張りすぎましたね。もっと自分で考えてそれで
わからない場合はまた質問させていただきます。もっと細かい
単位で質問させていただきます。
ご忠告ありがとうございました。

花ちゃんさん>
すみませんでしたm(__)m今度からは人のソースを使用する場合は
リンクをはらせていただきます。もっと掲示板の使い方を
考えていきたいと思います。


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




  


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