- - PR -
[ASP.NET]複数シートのExcelを作成
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-05-07 18:23
いつも拝見しています。
ASP.NETで単一のシートはここの掲示板を参考にしてできたのですが、 複数シートのやり方がわかりません。複数シートのExcelを作成し、 Web形式で保存を試みたのですがシート分のファイルを別途作り、それ をインポートする形になっていました。 この場合はどうすればいいのでしょうか? | ||||
|
投稿日時: 2003-05-08 08:47
こんにちは。
『ここの掲示板を参照して』ということは、ExcelApplicationオブジェクトを作成してということだと思いますが、WorkBookオブジェクトのWorkSheetsプロパティにWorkSheetオブジェクトを追加してもダメですか? それとも、作成はできて、保存したいのでしょうか。それとも表示?『それをインポートする形になって』いたのはどこかのサンプルでしょうか? | ||||
|
投稿日時: 2003-05-08 15:28
Jittaさんありがとうございます。
ここの掲示板でみたというのはExcelApplicationオブジェクトではなく --- Response.Clear() Dim fname As String Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift-jis") Response.ContentType = "application/vnd.ms-excel" fname = System.Web.HttpUtility.UrlEncode("AAAAA.xls") Response.AppendHeader("content-disposition", "attachment; filename=" + fname) Response.Charset = "" Me.EnableViewState = False Dim strExcel As String strExcel = "" strExcel = strExcel & " <html xmlns:v=""urn:schemas-microsoft-com:vml""" strExcel = strExcel & " xmlns:o=""urn:schemas-microsoft-com:office:office""" strExcel = strExcel & " xmlns:x=""urn:schemas-microsoft-com:office:excel""" strExcel = strExcel & " xmlns=""http://www.w3.org/TR/REC-html40"">" strExcel = strExcel & " " strExcel = strExcel & " <head>" strExcel = strExcel & " <meta http-equiv=Content-Type content=""text/html; charset=shift_jis"">" strExcel = strExcel & " <meta name=ProgId content=Excel.Sheet>" strExcel = strExcel & " <meta name=Generator content=""Microsoft Excel 9"">" (中略) strExcel = strExcel & " </table>" strExcel = strExcel & " " strExcel = strExcel & " </body>" strExcel = strExcel & " " strExcel = strExcel & " </html>" Response.Write(strExcel) Response.End() --- といった感じのExcelで作成したファイルをHTML形式で保存し、 それをResponse.Writeしているだけのものです。 定型帳票を作りたかったのでこれでいいのかなと思ったのですが、 複数シートをする場合にExcelをHTML形式で保存したらたくさんの ファイルができてそれをインポートしてるみたいで。 罫線なども多用しているのでこのままで行きたいのですが、 みなさんはどのようにしているのでしょうか。 | ||||
|
投稿日時: 2003-05-09 09:38
1.元となるエクセルファイルを用意する。 2.そのファイルをコピー 3.コピーしたファイルにADOでアクセスしてデータを流し込む というやり方でうまくいったと思います。 ソースが手元にないので、話が抽象的ですいません。 しかもExcel2000以上限定だったと思います。 | ||||
|
投稿日時: 2003-05-12 21:42
Jittaさん、通常の名無しさんの3倍さんありがとうです。
なんとしてでも動的に複数のシートを作成したいんです。 > 『ここの掲示板を参照して』ということは、ExcelApplicationオブジェクトを作成し> てということだと思いますが、WorkBookオブジェクトのWorkSheetsプロパティに> WorkSheetオブジェクトを追加してもダメですか? これはもしかしてActiveXなのでしょうか? あと、どこのHP探してもASP.NETでのサンプルがないです。 どこかいいサイトご存知でしょうか。 | ||||
|
投稿日時: 2003-05-13 10:07
英語ですが、GotDotNetと、この中からリンクされているところとか。たいていのパターンはそろっています。このページ、一応日本語もありますが、あまり充実していません。 それから、VS.NET付属のヘルプ(MSDNライブラリ)を、「サンプル」または「チュートリアル」で検索してみましょう。結構出てきますよ。これらからも、GotDotNetやASP.NETにリンクされています。 >これはもしかしてActiveXなのでしょうか? そう、なのかな?私の方はブラウザーでWindowsアプリケーションを表示させる、という手法なので使えているのかもしれません。 参照の追加で、COMタブページにある「Microsoft Excel 10.0 Object Liblary」(10.0はバージョンによる)を追加し、Imports(using)します。Excel.Application型のオブジェクトを宣言し、CreateObjectでExcelを起動させれば、エクセルマクロでできることはほぼ全てできます。ただし、ASP.NETのワーカープロセスにこれをやらせることをMSは推奨していません。 | ||||
|
投稿日時: 2003-05-13 15:49
Jittaさん、ありがとうです。
かなり基本的な質問なのですが、サーバにOfficeが入っているのが 大前提なのでしょうか? Microsoft Office 10.0 Object Library をインポートしたらエラーが出てしまって。 もしかして、Microsoft Excel 10.0 Object Libraryなのかなと。 | ||||
|
投稿日時: 2003-05-14 08:37
おそらく、Office Object Libraryは、ツールバーとかのオブジェクトかと・・・ ワードはWORD、エクセルはEXCELのライブラリです。もちろん、使いたいものが使う場所に入っていることが大前提です。 |