Skip to content

Instantly share code, notes, and snippets.

@m8s00
Last active August 31, 2023 03:50
Show Gist options
  • Save m8s00/b0d83255dc39e34ffc83a705f7515fdd to your computer and use it in GitHub Desktop.
Save m8s00/b0d83255dc39e34ffc83a705f7515fdd to your computer and use it in GitHub Desktop.
C# Xlsx.SaveAs.MemoryStream
using (XLWorkbook book = new XLWorkbook(XLEventTracking.Disabled))
{
//IXLWorksheet sheet = book.AddWorksheet("1");
IXLWorksheet sheet = book.Worksheets.Add("1");
sheet.Range("A1").Value = "test";
// ファイルダウンロード
HttpResponse response = Page.Response;
// レスポンス情報を初期化
response.Clear();
// コンテントタイプにXML形式を設定
response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
// ダウンロードファイル名の設定
response.AddHeader("content-disposition", "attachment;filename=" + Page.Server.UrlEncode("TEST.XLSX"));
// 編集したワークブックを一度、メモリ上に保存し、レスポンスの出力ストリームに転送することによりテンポラリファイルが不要となる
using (MemoryStream MyMemoryStream = new MemoryStream())
{
// メモリストリーム確保
book.SaveAs(MyMemoryStream);
// ワークブックを保存
MyMemoryStream.WriteTo(response.OutputStream);
// レスポンスの出力ストリームに転送
MyMemoryStream.Close();
// メモリストリーム解放
}
// レスポンスEND
response.End();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment