- PR -

ASP.NETでCrystalReportsのエクスポートファイルをダウンロードするには?

1
投稿者投稿内容
ぺそまる
会議室デビュー日: 2004/10/01
投稿数: 14
投稿日時: 2005-12-20 21:13
ASP.NETでCrystalReportsのエクスポートファイルを
ダウンロードする方法を教えてください。

●やりたいこと
ブラウザ上のボタンをクリックする

ファイルのダウンロードダイアログが表示される

保存を選択するとクライアントのフォルダに
Excel形式のエクスポートファイルが保存される

●今わかっている方法
CrystalReportsのExportメソッドでサーバ側にエクスポートファイルを作成し、
そのファイルをResponse.WriteFileでブラウザに返す

●知りたいこと
1.物理的なファイルをサーバ側に作成せずに、
メモリなどを介してエクスポートする方法はないか?
2.1.が無理な場合、サーバ側に作成したファイルは
どのタイミングで削除すればよいのか?
ResponseのWriteFile→Flush→Closeの後でよいのか?

オススメの方法などありましたら、ご教示ください。
ヒントでも助かります。

環境は、
Visual Studio .NET 2003
CrystalReportIX
です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-21 01:22
引用:

ぺそまるさんの書き込み (2005-12-20 21:13) より:

1.物理的なファイルをサーバ側に作成せずに、
メモリなどを介してエクスポートする方法はないか?


無理でしょう。
ダウンロードさせる前提で考えた時点で破綻しちゃいますね。(^^;)

引用:

2.1.が無理な場合、サーバ側に作成したファイルは
どのタイミングで削除すればよいのか?
ResponseのWriteFile→Flush→Closeの後でよいのか?


一時ファイル的な考えですよね。
using や try 〜 finally を使っていれば、それで十分でしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぺそまる
会議室デビュー日: 2004/10/01
投稿数: 14
投稿日時: 2005-12-21 10:16
引用:

じゃんぬねっとさんの書き込み (2005-12-21 01:22) より:

引用:

ぺそまるさんの書き込み (2005-12-20 21:13) より:

1.物理的なファイルをサーバ側に作成せずに、
メモリなどを介してエクスポートする方法はないか?


無理でしょう。
ダウンロードさせる前提で考えた時点で破綻しちゃいますね。(^^


やはり、ファイルを作るしかないのですね。

引用:

引用:

2.1.が無理な場合、サーバ側に作成したファイルは
どのタイミングで削除すればよいのか?
ResponseのWriteFile→Flush→Closeの後でよいのか?


一時ファイル的な考えですよね。
using や try 〜 finally を使っていれば、それで十分でしょう。


エクスポートファイルは一時ファイルとして作成します。
ファイルの削除漏れで、ごみが溜まったら困るなぁと思っていたのですが、
try 〜 finallyで削除するようにします。

回答ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-12-21 22:08
→MemoryStream
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-21 22:13
引用:

Jittaさんの書き込み (2005-12-21 22:08) より:

→MemoryStream


ダウンロードさせることってできますか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぺそまる
会議室デビュー日: 2004/10/01
投稿数: 14
投稿日時: 2005-12-21 23:38
CrystalReportsの帳票をExcel形式でExportするときに、
物理的なファイルではなく、
メモリ上に出力できればいいなと思ったのですが、
CrystalReportsのヘルプやサンプルを探しても
そんなことができそうなクラスやメソッドが探し出せませんでした。

今のところわかっている方法は、
出力先のファイルパスをstringのプロパティに指定して、
Exportメソッドを呼び出してエクスポートする方法です。

MemoryStreamを組み合わせると、
一時ファイルを作成することなくダウンロードできるようになるのでしょうか?

# なんだか.NETというよりはCrystalReportsの質問になってしまい、
# この会議室の趣旨から外れてしまっていたら、ごめんなさい。
ぺそまる
会議室デビュー日: 2004/10/01
投稿数: 14
投稿日時: 2006-01-10 21:40
いまさらながらですが・・・

CrystalReportsのExportToStreamメソッドでレポートをエクスポートし、
Response.BinaryWriteメソッドで出力することで
物理ファイルを作らずにダウンロードできました。

念のため、ご報告でした。
1

スキルアップ/キャリアアップ(JOB@IT)