質問: web page 上にグラフ表示したい sql server 7.0 のデータを抽出して web page 上にグラフ表示したいのですが、 良い方法はありますでしょうか? 漠然と asp と excel を使えば可能かなあなんて考えているのですが・・・。 ご存知の方がいらっしゃいましたら教えてください。
回答: 補足を拝見しました。 ブラウザに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を編集しようとするので、おかしな事になるかもしれません。