- - PR -
excelからservletを呼び出す方法
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-05-02 11:28
こんにちは。松崎と申します。
以前、servletからexcelのファイルを出力するという話題が ありましたが、 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1678&forum=12 さらに、excelからservletのメソッドをcallするという事は 簡単にできるのでしょうか? どなたか方法をご存知でしたらご教授下さい。よろしくお願い 致します。 |
|
投稿日時: 2003-05-02 12:14
ActiveXのオブジェクトを生成してアクセスというのでは
だめでしょうか? XMLHTTPを使えば、アクセスできますけれども。 |
|
投稿日時: 2003-05-02 12:39
latteさんこんにちは。
XMLHTTPについてインターネットで検索してみたのですがIE6から 新たに追加された機能ですね^^知りませんでした。ありがとうご ざいます。 でもEXCELからもXMLHTTPが使えるのですか?ちなみにIEからです とJavaScriptの部分でXMLHTTPを使用して動的にservletからデータ を取得できるということですよね? これができるとブラウザとの動的なインターフェースが取れるので 結構便利です。 ちなみにXMLHTTPがActiveXオブジェクトと言う事なのでしょうか? ActiveXについては全く知識不足なので・・ 理想の形態はservletからXML形式で出力するメソッドを用意して 次世代のEXCELや(次のEXCELはXML正式対応ですよね^^?)その他 のアプリケーションでも共通して使えるservletを作りたいなと思っ ていました。 |
|
投稿日時: 2003-05-02 12:57
すみません。。
IE6からの新しい機能ではないみたいですね・・MSXMLの中に ある一部の機能と受け止めれば良いでしょうか。 ちなみに色々検索してみたのですが、具体的にJavaScriptで servletをコールしている例など紹介しているサイトなどご存知 であればご教授下さい。よろしくお願いします。 |
|
投稿日時: 2003-05-02 17:53
微妙に違うかもしれませんが、大体こんな感じだと思います
--- Excel VBA (HMLHTTPでServletへアクセス) ---------------------------- Dim oXmlHttp As Object Set oXmlHttp = CreateObject("Microsoft.XMLHTTP") oXmlHttp.Open "POST", "http://localhost:8080/hoge/foo", False oXmlHttp.send ("<root><hoge1>hogehoge</hoge1></root>") 'Servletへアクセス execute = oXmlHttp.responseText 'Servletから結果を受け取る部分 ----------------------------------------------------- Excelの参照設定で、msxml.dllを見るようにします。 上の感じだと、XMLの文字列がServletに渡ります。 Servlet側では、リクエストからStreamを取って、 そいつをXMLパーサに食わせて処理をする。。。とか。。。 --- Servlet データ受け取り部分------------------------ DOMParser parser = new DOMParser(); parser.parse(new InputSource(request.getInputStream())); Document document = parser.getDocument(); ///// documentに対してなんらかの処理をする ---------------------------------------------------- 上のコードでは、ExcelからXML形式でデータをSerlvetへ 渡し、DOMでパース、処理をします。 で、Excelになんらかのデータを返したければ、 HttpServletResponseでXMLの形でデータを返せば、 Excel側でそれをDOMなどで解析して、、、などができると思います。 --- Servlet Excelへデータを返す部分 ------------- response.setContentType("text/xml; charset=UTF-8" ); response.setHeader("Content-Language", "UTF-8"); response.setHeader("encoding", "UTF-8"); PrintWriter out = response.getWriter(); out.println("<root><foo>foofoo</foo></root>"); out.flush(); out.close(); out = null; ------------------------------------------- --- Excel Servletからの結果をなにか処理 ----- Dim oDom As Object Set oDom = CreateObject("Microsoft.XMLDOM") oDom.async = False oDom.loadXML (szXml) 'Servletからの結果を渡す ////なにか処理 ---------------------------------------------- 間違っているところや、matuさんの望んでいる ことと違うかもしれませんが、以前こんな感じの コードを書いたことがあります。 次世代のExcelでも使えるかは、すみません、 ちょっとわかりません。。。 [ メッセージ編集済み 編集者: latte 編集日時 2003-05-02 18:08 ] |
|
投稿日時: 2003-05-02 20:48
latteさんこんばんは。
非常に解りやすい例を頂いて感謝ですm(__)m 戻り値を取得する側が若干見えなかったのですが おそらくEXCELのVBA側でjavaで言うインプットバッ ファストリームの様に考えて受け取れば良いのです ね。ちょっと試してみます。 ありがとうございました。 |
1
