Microsoft.Office.Interop.Excel
C# で を使用してカスタム ファイルを作成していました.xlsx
。
そうすることで、私はWorkbook
オブジェクトを作成しました。データを取得して処理し、Interop を介してカスタム スタイルとフォーマットを適用するための複雑な SQL クエリの性質上、コードは非常に長くなります。相互運用機能自体からのメモリ リークを回避し、実行後に Excel が実際に適切に閉じられるようにするための非常に慎重なプロセスは言うまでもありません。
私は当初、コンソール アプリケーションとしてテストしていましたが、満足のいく動作が得られました。それが行うことは、SaveAs
メンバーを使用して最終結果をファイルシステムに保存することです。
ただし、次の目標は、出力を出力ストリームとして、asp.net
この質問のようなものにリダイレクトすることでした。私はいくつかの基本的な調査を行いましたが、最初にワークブックをサーバーのファイル システムに保存することを含まないアプローチを見つけることができないようです。これにより、複数のユーザーが同時にアクセスしている場合などに競合が発生する可能性があります。
私の質問は、オブジェクトをファイル システムに保存せずに asp.netContentType
を設定し.xlsx
てストリーミングする簡単な方法はありますか? Workbook
そうでない場合、asp.net
一時ファイルを競合なしで自動的に保存し、一時ファイルを提供し、提供後に一時ファイルを削除する方法はありますか?