企業口コミこの質問・回答は、@ITの旧掲示板からインポートされたものです。ASP.NETでEXCELファイル出力したいはじめまして!過去ログを全部読んだ上で常連の皆様方におかれましては、うんざりするような初歩的な質問をさせて頂きますことをお許し下さい。社内システムを初めてASP.NETで構築しようと目論んでいるのですが、Datagridに動的に表示した項目をExcel出力してダウンロードさせる具体的な手法がよく解りません。↓3チェックのついた行のレコードをEXCELファイル(罫線付き)に出力する。いう、極めて単純なシステム(のハズ^^;)です。解らない点としましては...・複数のユーザの出力要求に対し、どのようなファイル名称でサーバに格納すればいいのか?(クライアントPCのIP情報、端末名称等は.NETアプリ側で拾えないんですよね?)・ユーザが当該ExcelファイルをDLする時に自分が作成したファイルしか選べ(見え)ないようにするにはどのようにすればいいのか?・罫線つきのExcelをコードで書く自信もないので、マクロを仕込んだテンプレートをサーバに置いておいて、それをどうにかしないといけないんでしょうか?そうなるとどこまでを.NET側でやってどこからをExcel側でやれば良いのでしょうか?・実際にファイルが生成されてから(コモンダイアログみたいな何か?で)DL選択させるまでをどのようなコードで記述すれば良いのかもよく見えません。SR−2・サーバはWin2000(サーバ上のExcelも97)・開発言語はVB.NET(WEBフォーム)・DBMSはSQL−Server2000・WEBブラウザはIEの5.5(SP2)となっています。ご教示のほど、宜しくお願い致します。以前、ADO.NETを使ってExcelへ出力したことがあり、下記のURLを参考にしました。http://support.microsoft.com/?kbid=316934この方法では、Deleteは出来ないようです。罫線を引く、といったデータを取り扱う以外の事も無理っぽいですね。Libraryを取り込みました)参考になれば幸いです。最高にいいと思ってます。その、「XXXX.xls」を保存するときに、「名前を付けて保存」で「テンプレート」として保存すればどうですか?必ず新しいワークブック(ファイル)ができますよ。最初に保存するときは「テンプレート」フォルダが開かれるので注意と、元のファイルを編集するときはダブルクリックではなく、コンテキストメニューから「開く」(デフォルトは「新規作成」)を選択しなければなりません。新しいワークブックは保存しなければファイルになりません。(0)(一応、まとめ&問題提起します)ExcelにSQL文([SELECT][INSERT])はできましたが、[Update]文はできなかったんです。[Delete]文はテストしてませんでした。ご存知の方がおりましたら、ぜひご教授ください。先ほど[CreateObject("Excel.Application")]をテストしました。最初は、[ActiveXコンポーネント作成できない]っていうエラーが出まくりです。問題なく使えるようになりました。Jittaさんから教えて頂いた「マクロ記録を利用して、罫線を引く」こともできました。ありがとうございます。最高にいいと思ってます。[ActiveXコンポーネント作成できない]っていうエラーが出てきます。確かに一回目の実行で、[GetObject("c:\xxx\xxx.xls")]が通ったんですけど。'W'"」ですが、COLUMN($B$4)だと、B4のセル固定じゃないですか?-------------------------------------------------------------------確かにその通りです^^;。そのカラムの書き方がわからなくて、適当に書いて[Update]文を検証してみたかったんです。わかりづらかったことを書いてしまって、すみませんでした。:で、.NETからExcelに書込み処理なんですが、[Insert]処理ができて、[Update]処理はどうしてもできなかったんです。一応、ソースを載せておきます。おお!!ExcelへSQL文でデータを送れるんですか!!そう言えば、技術情報にもそれらしき記述があったなぁ・・・。勉強になりました!!しかし、それなら逆に困りました。私がやった方法は、CreateObjectでExcelを起動させて、クリップボード経由でデータをセルに貼り付けていました。エクセルのマクロ記録を利用して、罫線を引けたのです。:1は、DataGridを上から回しながら、チェックのついた行だけ処理対象とする、ということでいいですよね。2は、私はEXCELで罫線を引を引く処理をマクロ記録し、それをVB.NET上に移しました。--------------------------------------------------------------------------------ご返答、ありがとうございます。マクロ記録を参照するなんて、考えもしなかったんです。.NETからExcelに書込み処理なんですが、[Insert]処理ができて、[Update]処理はどうしてもできなかったんです。一応、ソースを載せておきます。このインサート文はうまくいきますが。更新はできないんです。xobjConn)SqlCommand.ExecuteNonQuery()SqlCommand.Dispose()よろしければ、更新文の正誤をお教え頂ければ幸いです。