ASP.NET での ReportViewer からのレポート出力の種類
Visual Studio を利用して ASP.NET の開発を行う場合の利点のひとつは、レポート機能を利用できることです。
レポート定義ファイルを作成して、それと ReportViewer コントロールと組み合わせると、帳票出力に便利な PDF 出力などが利用できるようになります。
このフレームワークは .NET Framework や ASP.NET といったレベルではなく、Visual Studio で利用できるものです。
ここでは ReportViewer コントロールを利用してレポートを出力するときの、データフォーマットについて説明します。
ReportViewer コントロールではレポート内容をエクスポートする機能があります。
ここには Excel、PDF、Word が選択可能となっており、PDF を選択すると バックエンドでサーバーに対して GET リクエストが送られ、サーバーからは Content-Type が application/pdf であるデータストリームが返されます。
ちなみに、このレスポンスには Content-Disposition ヘッダーで attachment とされるので、通常ブラウザでは名前をつけて保存するというような選択肢が表示されます。
その他、Excel、Word でもそれぞれ Excel のスプレッドシートデータ、Word ドキュメントにあった適切なコンテントタイプがセットされるため、 そのまま Excel や Word で直接開くことが可能です。
例えば Excel については、Content-Type は "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" となります。
Excel がインストールされているクライアントでは、この MIME タイプが登録されているはずなので、システムは Excel を起動すればよいことが分かります。
この情報はレジストリの HKCR の MIME\Database\ContentType の下のキーに登録されています。
普段はこうしたレジストリをいじることはありませんが、特定のクライアントだけ Excel がインストールされているにもかかわらず開かない、などの問題が発生した場合はこうした場所をチェックするのも有効な場合もあるかもしれません。
ま、ブラウザから Excel が開かないというときは、それよりもポップアップブロッカーなども疑わしいですけどね)