Web アプリケーションでは、プログラムがサーバー側で実行されるため、Windows アプリケーションのようにレポートをエクスポートすることはできません。では、完全なクライアント側のエクスポートを実現するにはどうすればよいでしょうか。実際、これは難しいことではありません。レポートを特定の Web サイト上に事前に作成された一時レポート ファイルにエクスポートし、response.redirect() コマンドを使用してブラウザーの URL をレポートの場所に指定します。ユーザーのブラウザはエクスポートしたばかりのファイルのダウンロードを試み、そのファイルはクライアントにダウンロードされ、それによって必要な効果が得られます。 コードの一部は次のとおりです:
public string ExportReport()
{
ExportOptions creo = new ExportOptions();
DiskFileDestinationOptions crdo = new DiskFileDestinationOptions();
string FileName = Request.PhysicalApplicationPath + "ExportFileExap.xls";
// エクスポート オプションを設定します
。
creo = Myrpt.ExportOptions;
creo.ExportFormatType = ExportFormatType.Excel;
creo.ExportDestinationType = ExportDestinationType.DiskFile
//ディスク ファイル オプションを設定します
。
crdo.DiskFileName = ファイル名;
creo.DestinationOptions = crdo
//レポートをエクスポートします。
MyRpt.Export();
ファイル名を返します。
private
void buttonExport_Click(オブジェクト送信者, System.EventArgs e)
{
文字列ファイル名 = ExportReport();
Response.Redirect(Replace(FileName,Request.PhysicalApplicationPath + "ExportFile",""));
}
Web にエクスポートする場合、エクスポート ディレクトリにファイルを作成する権限が必要であることに注意してください。権限が不十分な場合、「レポート ファイルへのアクセスが拒否されました...」というエラーが表示されます。 ASPNET ユーザー (.NET Framework のインストール時に自動的に生成されるシステム ユーザー) に、エクスポート ディレクトリ ファイルへの "書き込み" アクセス許可を与えるだけです。