none
Gridviewの特定のデータを指定したExcelファイルに書き出す RRS feed

  • 質問

  • Gridviewで「選択を有効にする」をオンにして、データを選択できるようにしてあります。
    ボタンをクリックしたら、
    選択したデータだけを、指定したExcelファイルに出力したいです。

    Accessのテーブル作成クエリのように、
    別のデータを選択してボタンを押すと、
    別のデータが指定したExcelに上書きされるようにしたいです。

    参考サイト等教えていただければありがたいです!
    お願いいたします!

    2012年4月4日 5:43

回答

すべての返信

  • ASP.NETのプログラムはWebサーバー上で動作します。ExcelはWebサーバー上に書き出すのでしょうか? それを実現するにしても、サーバー上でExcel自体を操作することは推薦されません。

    Office のサーバーサイド オートメーションについて
    http://support.microsoft.com/kb/257757/ja

    例えば、csvの形でクライアントに送出するのではダメなのでしょうか?


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年4月4日 7:15
    モデレータ
  • > trapemiya 様

    ご回答いただきありがとうございます!

    書き出すExcelは、サーバー上ではなく
    ボタンをクリックした人個人のPCのなかにしたいです。

    特定のExcelに書き出して
    いろんなWordファイルに差し込み印刷出来るようにしたいのです。

    Accessのテーブル作成クエリだとそれができているのですが
    Webアプリでも同じようなことができないものかと考えています。

    見当違いの回答だったらすみません。
    よろしくお願いいたします!

    2012年4月4日 7:26
  • Webアプリケーションの場合、クライアント上にあるファイルを直接弄るのはセキュリティ上の問題で、不可能だと思った方が良いと思います。ActiveXを使ってIE限定であれば、何とかできるかもしれませんが・・・。それでもセキュリティ上の問題が発生すると思います。

    話は変わりますが、Silverlight 4だとクライアント側でExcelが操作できるようになりましたが、全く違うテクノロジーですし・・・

    (参考)
    Silverlight 4 Excel連携
    http://www.riaxdnp.jp/?p=683

    サーバーからクライアントへ送りつける方法については、よくまとまったページを見つけましたのでご紹介しておきます。

    ASP.net WebサイトでクライアントにExcelを返す
    http://wintips.blog117.fc2.com/blog-entry-70.html


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年4月4日 8:45
    モデレータ
  • > trapemiya 様

    引き続きご回答いただきありがとうございます!

    私の理解がなってなくて申し訳ありません。。。

    http://d.hatena.ne.jp/pink-woof/20080220/1203498941

    上記サイトを参考に、
    全件書出しをすることはできました。

    全件でなく、選択したデータ1件だけを取り出すことは
    >クライアント上にあるファイルを直接弄る
    ということになり、不可能なのでしょうか・・・?

    2012年4月5日 2:11
  • Excelとして出力する前に、選択した行以外は一時的に非表示にすればうまく行くのではないかと思います。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年4月5日 2:57
    モデレータ
  • > trapemiya 様

    ありがとうございます!
    挑戦してみます!!

    2012年4月5日 8:05
  • > 全件でなく、選択したデータ1件だけを取り出すことは
    > >クライアント上にあるファイルを直接弄る
    > ということになり、不可能なのでしょうか・・・?

    ひょっとして、ボタンをクリックするたびに、クライアントのPC にあ
    る既存の Excel ブックに 1 行ずつ追加されていくということを望ん
    でいるのですか? であればそれは不可能と言ってもいいと思います。

    選択ボタンをクリックするたびに、選択した 1 行だけを含んだ Excel
    ファイルを、ボタンをクリックした数だけダウンロードするというよう
    なことなら可能だと思いますが、そういうことを望んでいるわけではな
    いですよね?

    GridView の先頭の列に CheckBox を追加し、ユーザーがチェックを入
    れてポストバックすると、チェックが入った行のみ Excel ファイルに
    してダウンロードするというのはどうですか?

    2012年4月5日 12:15
  • > SurferOnWww 様

    ご回答いただきありがとうございます!

    >GridView の先頭の列に CheckBox を追加し、ユーザーがチェックを入
    >れてポストバックすると、チェックが入った行のみ Excel ファイルに
    >してダウンロードするというのはどうですか?

    まさにこれがやりたいのです!
    参考サイト等ありましたら教えていただけますか??

    お願いいたします!

    2012年4月9日 6:13
  • あぁ、そういうことでしたか。であれば、最初から以下をご紹介すればよかったですね。

    Export selected rows of gridview to Excel or word in ASP.Net
    http://www.aspdotnet-suresh.com/2011/12/export-selected-gridview-rows-to-excel.html


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/


    2012年4月9日 7:32
    モデレータ
  • すでに trapemiya さんがページを紹介されていますが・・・


    > 参考サイト等ありましたら教えていただけますか??

    自力で探せるのもスキルのうちですので、是非チャレンジしてみて
    ください。英語のサイトを含めて探すと結構見つかります。

    今回のケースでは、gridview checkbox excel あたりをキーワード
    にググってみるといろいろ見つかると思います。(trapemiya さん
    が紹介されたページも出てきます)

    このフォーラムの回答者も、多くのケースで、ググって答えを探し
    ているはずです。うまく見つけられるかどうかも、回答者の回答力
    に影響しているようです。

    2012年4月9日 11:41
  • >trapemiya 様
    >SurferOnWww 様

    お返事いただきありがとうございます!

    説明が下手で色々と回り道してしまい
    申し訳ありませんでした。

    Export selected rows of gridview to Excel or word in ASP.Net
    http://www.aspdotnet-suresh.com/2011/12/export-selected-gridview-rows-to-excel.html
    上記サイトで勉強します!

    自分で検索してみると英語サイトばかり出てきてしまい
    英語サイトの読解がどうも苦手で
    自分が求めているものなのかどうかもよくわからなくて
    ついこちらで質問してしまうのですが
    英語サイトの読解をもっとまじめにやろうと思います。。

    ありがとうございました!
    2012年4月10日 4:47