none
Excelで、データを作成できるようにしたいのですが RRS feed

  • 質問


  • クライアント側のパソコンでダウンロードボタンを押すと データベースのデータをエクセルにダウンロードでき
    さらに同時に表やグラフを作成できるようにしたく、調べていたところ
    http://anetm.com/dev/tools/vbdotnet/112217.htmで、エクセルと連携させ、計算する方法がありました。

    ですが
    クライアントのPCで、実行しても、サーバーのPCにエクセル表ができてクライアント側にはエクセルが起動されません。

    どうしたら、クライアント側で、エクセルが実行され、サーバーのPCでエクセルが起動されなくなるのでしょうか?
    助言をお願いします。
    2009年2月22日 13:53

回答

すべての返信

  •  

    > どうしたら、クライアント側で、エクセルが実行され、サーバーのPCでエクセルが起
    > 動されなくなるのでしょうか?

    それは不可能です。

    Web アプリケーションはサーバーで動いていて、その結果が HTML 形式でクライアント
    側に送られてきて IE などのブラウザで表示されているという、ごく基本的なことが分
    かっていないようですね。

    ただし、GridView に表示されたデータを CSV や Excel 形式のファイルにしてダウンロ
    ードしたり、グラフにしてブラウザに表示したりする方法ならあります。

    2009年2月22日 14:37
  • komi1さん の発言:


    クライアント側のパソコンでダウンロードボタンを押すと データベースのデータをエクセルにダウンロードでき
    さらに同時に表やグラフを作成できるようにしたく、調べていたところ
    http://anetm.com/dev/tools/vbdotnet/112217.htmで、エクセルと連携させ、計算する方法がありました。

    ですが
    クライアントのPCで、実行しても、サーバーのPCにエクセル表ができてクライアント側にはエクセルが起動されません。

    どうしたら、クライアント側で、エクセルが実行され、サーバーのPCでエクセルが起動されなくなるのでしょうか?
    助言をお願いします。

     SurferOnWwwさんも書かれていますが、Webの仕組み上不可能です。
    (まあActiveXコントロールを作ってゴニョゴニョとかやれば別だろうけど、セキュリティ上やめておいた方がいいです。)

    「不可能」と一言で片づけるのも芸がないので、代替案を一つ。
    もしデータベースとしてSQL Serverを使っているのであればReporting Servicesを使ってブラウザ上にグラフや表を作成し、それをExcelにエクスポートすることができます。
    (調べてみたら、SQL Server Express with Advanced ServicesでもReporting Servicesは動くみたい。)

    もしSQL Server Express with Advanced ServicesでReporting Servicesを構築するには、以下の内容が参考になると思います。
    http://technet.microsoft.com/ja-jp/library/ms365166.aspx

    2009年2月22日 15:29
  • GridView に表示されたデータを
    Excel でダウンロードしグラフにしたりするには
    SQL Server 2005 Express Editionでやらないと無理でしょうか?
    現在アクセスなんですが・・・
    何か、コードのサンプルが乗っているようなHPはないでしょうか?
    あったら教えてください。
    2009年2月22日 16:03
  •  例えばこんな感じのことでしょうか?

    オートメーション機能を利用しないExcel形式でのWeb帳票印刷
    http://codezine.jp/article/detail/194?p=1

    Export to Excel
    http://www.aspnetpro.com/NewsletterArticle/2003/09/asp200309so_l/asp200309so_l.asp


    GridViewからExcelへは例えば、以下のサンプルがあります。

    How to export a GridView to Excel
    http://www.aspnetlibrary.com/articledetails.aspx?article=How-to-export-a-GridView-to-Excel

    ASP.Net 2.0: Export GridView to Excel
    http://www.c-sharpcorner.com/UploadFile/DipalChoksi/exportxl_asp2_dc11032006003657AM/exportxl_asp2_dc.aspx

    ASP.Net 2.0: Export GridView to Excel - Part II
    http://www.c-sharpcorner.com/UploadFile/DipalChoksi/exportxl_asp22_dc04022007235740PM/exportxl_asp22_dc.aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク komi1 2009年2月24日 14:38
    2009年2月23日 0:24
    モデレータ
  • trapemiyaさん の発言:

     例えばこんな感じのことでしょうか?

    オートメーション機能を利用しないExcel形式でのWeb帳票印刷
    http://codezine.jp/article/detail/194?p=1

     ああそうか。Excel 2003でも(一応は)XMLはサポートされているから、XMLファイルを作成してそれをダウンロードさせればいいんだ。
     これに便乗して別の方法を提示したいと思います。
     Excel 2007(もしくはExcel 2003に2007形式のアドオンを追加)すれば、*.xlsxファイルが開くことができますので、サーバーで*.xlsxファイルを作成してダウンロードさせるという手もありますね。

     これのメリットとして、Open XML SDKをインストールすればOpen XMLファイルを作成するためのクラスが追加されるので、特殊なテクニックを使わなくても*.xlsxや*.docxファイルが作成できることです。
     ただしOffice 2000以前のバージョンには対応できませんが。

     使う使わないは別にして、一度Open XMLについて調べてみるといいかもしれないです。
    それ用のクラスがついかされるので、Office文書の取り扱いがすごく楽になります。

    2009年2月23日 4:32
  •  

    GridView → Excel は trapemiya さんが紹介されているサイトを参考にするとして、
    DB 内容を CSV 形式にしてダウンロードする方法を述べたサイトを紹介します。

    データベースの内容をクライアントにダウンロード提供するには?
    http://www.atmarkit.co.jp/fdotnet/dotnettips/210aspdbdwnload/aspdbdwnload.html

    上記は SQL Server 利用ですが、Access でも基本的には同じようにして CVS ファ
    イルをダウンロードできます。

    また、Office Web Component を利用してグラフを作成し、gif 形式の画像にして
    ブラウザに表示する方法を述べたサイトも紹介しておきます。

    Office Web Componentsを利用してASP.NETでグラフを作成する
    http://japan.internet.com/developer/20051213/26.html

    記事が少し古いためか、バージョンが OWC10 ですが、最新は OWC11 となっていま
    す。

    2009年2月23日 13:37
  • グラフの部分に反応します。ASP.NETならばMicrosoft Chart Controlsの方が親和性が高いです。

    それともう一つ上の.xlsxにも。Open XML SDKは使ったことありませんが、System.IO.Packaging.Packageクラスでも少しは操作できます。
    でもまぁSDKを使った方が楽だと思います。
    Office2000以前と書かれていますが正確にはOffice XP以前ですね。
    2009年2月23日 13:49
  • たくさんの回答ありがとうございます。
    Excelのシート1にGridViewの情報をダウンロード
    そこから、VBAをつかって、シート2にグラフや、表を作成したりできるようにしたいのですが
    できるでしょうか?
    2009年2月23日 15:08
  • いろいろ、サンプルをいただきありがとうございます。
     XMLを組み合わせれば、できるんですね??
    これから、XMLについても勉強して、できるようにしたいと思いますが、
    今回は、これから、覚えてなので、時間がかかるので、レスを閉じさせていただきます。

    教えていただきありがとうございます。
    XMLについて、学習してみます。
    2009年2月24日 14:44