• 締切済み
  • 暇なときにでも

Web Page 上にグラフ表示したい

SQL Server 7.0 のデータを抽出して Web Page 上にグラフ表示したいのですが、 良い方法はありますでしょうか? 漠然と ASP と Excel を使えば可能かなあなんて考えているのですが・・・。 ご存知の方がいらっしゃいましたら教えてください。

共感・応援の気持ちを伝えよう!

みんなの回答

  • 回答No.3
  • maro
  • ベストアンサー率47% (95/199)

No2の補足です Book2.xlsをHTML形式で保存したら勝手にExcelがHTMLを吐き出して、どんなグラフでもHTML上で表現できそうです。

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • maro
  • ベストアンサー率47% (95/199)

補足を拝見しました。 ブラウザにInternetExplorer(4以降)を使うのであれば、ブラウザの中にExcelのシートを表示できますので、それを前提にし、なおかつサーバーはIISでASPを使うことを前提にいたします。 「AspExec」というフリーのコンポーネントがありますので、これをサーバーに登録します。 ASPのスクリプトで必要なデータを抽出して、別のテーブルにInsertします。 Excel上でVBAを使って次の動作を自動的にさせます。 1.ExcelのBook(Book1.xlsとします)のSheetに「外部データの取り込み」を使って、先ほどのテーブルとリンクさせます。 2.リンクしたテーブルのデータを元に別のBook(Book2.xlsとします)にOLEを使ってグラフを作成します。 3.作成し終わったらBook2.xlsを上書き保存させます。 4.Book1.xlsも自動的に終了させます。 このマクロはBook1.xlsを開いたら自動的に動くようにしておいてください。 ASP上でBook1.xlsをサーバー上で開かせます。 Set objAspExec = Server.CreateObject("AspExec.Execute") objAspExec.Application = "C:\Program Files\Microsoft Office\Office\excel.exe" objAspExec.Parameters = "(Book1.xlsのサーバーのローカルでのパス)" objAspExec.ShowWindow = False objResult = objAspExec.ExecuteWinAppAndWait Set objAspExec = Nothing このコードによってサーバー上で自動的にExcelが非表示で起動してBook1.xlsを開きます。ExcelのBook1.xlsは登録VBAを自動実行してBook2.xls上にグラフを描画して上書き保存して終了します。 HTML上でBook2.xlsへのリンクを記載しておいて、そのリンクをクリックすればブラウザの画面にExcelのBookが開いてグラフが表示されるはずです。 ただし、このしくみは同時アクセスができないということです。複数のクライアントから同時アクセスするとExcelが同時にBookを編集しようとするので、おかしな事になるかもしれません。

参考URL:
技術評論社 ASP実践プログラミング入門

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • maro
  • ベストアンサー率47% (95/199)

どんなグラフなのかにもよりますが、棒グラフなら簡単ですね。 四角い画像ファイルを抽出した値によって縦、あるいは横の長さを変えてやれば立派な棒グラフになります。 円グラフ、折れ線グラフとなるとちょっと・・・。 IE4あるいは5を使うということが前提なら、IEのウインドウの中にExcelのシートを表示するということが可能ですので、「外部データの取り込み」を使ってSQL ServerのデータをExcel上に取り込んで、それをグラフにしてやればOKですね。 HTMLの中に表示するとなると、抽出した値によって画像ファイルを作成するということが必要になると思います。ASPにそういうグラフィックをサポートしたコンポーネントがあるかどうか調べてみたらいかがでしょうか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

smiley666です。早速のお返事まことにありがとうございました。 自分の質問に返事できないので補足にさせていただきます。 現在のところ、ExcelのシートをHTMLのタグ、<a href="">で貼り付けると、IE5で参照できることがわかっています。ですから、後は画面から入力された条件でSQLServerからデータ抽出し、それをExcelに落としてHTMLを自動生成すれば大丈夫だと思うのですが、その際の問題点がまだ見えてこないので、ご存知の方がおられましたらお教え願いたいなあと思います。

関連するQ&A

  • ASPを使用してWeb上でのグラフ表示について

    はじめましてkeikoです。 4月からASPの勉強を始めたのですが、いきなり壁に突き当たってしまいました。ご指導よろしく御願い致します。 本題ですが、ASPを利用してAccessからデータを引用して、 Web上でグラフ(棒グラフ・折れ線グラフ・積上げ棒グラフ・ 棒&折れ線の混合グラフ)を表示したいと思っています。 (私の構想) (1)データ入力&Accessに保存 (2)(1)の時点でサーバー側でグラフを描画し、画像ファイルに保存 (3)Webでグラフの画像ファイルを表示 半月近くいろいろな場所を検索しているのですが、現在ベストな方法が判りません。どなたか教えて頂けないでしょうか?よろしく御願い致します。 (私の考えるベストな方法) (1)極力お金をかけない。 (2)出来ればASPで動かしたい。 (3)ASP.NETで簡単に出来るのであれば、それでも可。 (4)画像ファイルでWebに表示したい。 (動作環境) ・Windows2000Server ・IIS5.0 ・Office2000インストール済 以上です。

  • ASPでグラフ表示方法

    ASPでグラフを表示したいのですが、 いちいち自分でプログラムを組むのは大変なので 手抜きで作成したいのですが、 なにかいい方法はありませんか?(基本的に無料が希望) データベースにあるデータをつかってグラフを表示します。 グラフは折れ線グラフ。 開発環境はIIS5,VBScriptです。

  • 複数の折れ線グラフを同一グラフ内で表示したいのですが

    いいスクリプトが見つからなくて困っています。 折れ線グラフのデータはCGIのスクリプトで抽出するので、それら複数のデータを色分けして折れ線グラフで出力したいのです。 要は各チームの月間順位変動グラフみたいなものを作りたいのです。 http://www.core-p.com/cgi-search/search/search.cgi?cmd=dp&num=971 ここで見つけたJavaScriptをCGI内で利用しよう改造してみたのですが、複数の折れ線グラフの表示ができませんでした(別のグラフの点が表示されるまではいきましたがその点と点を結ぶ線の表示で挫折しました。元々私がJavaScriptに疎いということもありますが)。 何かいい案やいいスクリプトをご存知の方がいらっしゃいましたらご教授お願いします。

    • ベストアンサー
    • CGI
  • 棒グラフの合計の数字を棒グラフの上に表示したい

    棒グラフでその棒グラフの合計の数字を棒グラフの上に表示したいのですが、やり方を忘れてしまいました。右クリックして、データで値を選べばよかったと思うのですが、うまくできません。わかる方、教えてください。 回答、お待ちしてます。

  • Excelのグラフの非表示

    Excelのグラフの非表示 こんにちは。使用しているExcelは2003と2010です。下記のURLのグラフがあります。 http://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=012591 例えば国語のグラフのみ一時的に非表示にしたいと思うのですが、そのような方法はあるでしょうか? 元データのB列の国語という箇所を選択せずにグラフを作れば国語が除外されてグラフができるのはわかります。 ただ、全ての項目をグラフにして、一時的にこの項目だけ非表示にしたいといったことができますでしょうか? よろしくお願いします。

  • マクロ付きEXCELファイルがASPで操作できない

    初めて質問いたします。 ASPとVBAを使い、SQLサーバより取得したデータをサーバのEXCELファイルに挿入し、グラフを作成。 さらにグラフをgif化し、それをクライアントに表示するというシステムを作成したいのですが、EXCEL2000の場合のみマクロ付きのEXCELファイルをopenしたり、マクロを呼び出したりしようとすると、画面がかたまってしまいます。 最初は見えないところで「マクロを有効にする」などのメッセージがでているのかと思い、デジタル署名などを行ってみたのですが、ASPからVBAのマクロを呼び出すことができませんでした。 EXCEL97がはいっているサーバで試したところうまくいったのですが、EXCEL2000の場合のみうまくいきません。 環境は、 サーバ側:Windows2000+IIS5.0+office2000 クライアント側:IE5.0 です。 以下にソースを記します。 http://www.geocities.co.jp/SiliconValley-Cupertino/8836/sample.html 原因及び回避方法がわかる方どうぞ力をお貸しください。よろしくお願いします。

  • エクセルで折れ線グラフを表示させるとき

    Excel2003を使用しています。 ________________ 項目| A | B | C | D | E | ________________ 数値| ア | イ | ウ | エ | オ | ________________ 上のような表があります。 VLOOKUP関数を用いて,表のア~オにデータを引っ張ってくるようにして,その結果を折れ線グラフで表示させています。 この時,ア~オすべてにデータが入力されていればよいのですが, データが未入力である場合には,#VALUE!のエラーになります。 これを折れ線グラフに表示させようとすると,#VALUE!のエラーの部分は0(ゼロ)としてポイントされてしまいます。 例えば,上の表でAに100,Bに150,Cに200のデータが入力されていて,Dが未入力のため#VALUE!,Eに300のデータがあるとすると,100→150→200→0→300として変なグラフになってしまいます。 そこで,これをDの部分は,エラーなのでポイントを表示せず, 100→150→200→→300のように なめらかなグラフになるようにする方法はありませんか? 分かりにくい表現で申し訳ありませんが よろしくお願いします。

  • グラフの上に表を乗せたい

    グラフの上に表を乗せたい グラフの上に添付画像のように表を乗せたいですが、方法はないでしょうか? ちなみにこの表はグラフの元データとは異なるものです。

  • Excel2010 グラフの元データを表示するには

    Excel2010にてグラフの元データを表示する方法をご教授頂きたく、質問させて頂きます。 現状は、グラフだけがシートに貼ってある状態です。数値の書いてあるシートは見当たりません。 恐らく別のブックで作成したグラフを貼り付けている感じです。 この状態でもグラフ元データを参照できる方法がありましたら、教えて頂けないでしょうか。 宜しくお願いいたします。

  • Excel2010 グラフ横軸の設定

    Excel2010のグラフについて、下記のようなデータのグラフを作成しています。 A列:日付(平日のみ) B列:売上 この売り上げの推移を折れ線グラフで表示しているのですが、 日付が横軸となるよう範囲を選択すると、なぜか土日まで項目に出てきてしまい、 土日の売上は当然データがないため、不自然なグラフになってしまっています。 平日のデータのみをグラフに表示させる方法をご存知の方いましたらご教示ください。 よろしくお願いします。