以下にリストされているこれらのリンクをすべてたどっていますが、このSMALL create ExcelおよびDownload関数を作成する最良の方法を見つけました。(EPPlus for Excel を使用)
- FileResultを使用してAsp.Net MVCで任意のタイプのファイルをダウンロードしますか? + C# で Stream を byte[] に変換する方法は?
- ASP.NET MVC 3 の MemoryStream で FileStreamResult を使用する
- ASP.NET MVC のカスタム ファイル ダウンロード アクション結果の書き込み
これを実行するたびにエラーなしでコードを完全に実行しますが、ダウンロードするファイルを「キックアウト」しません(ダイアログとして保存または w/e で)。
public ActionResult ShowReport()
{
using (var stream = new MemoryStream())
{
ExcelPackage pck = new ExcelPackage();
var ws = pck.Workbook.Worksheets.Add("Sample1");
ws.Cells["A1"].Value = "Sample 1";
ws.Cells["A1"].Style.Font.Bold = true;
var shape = ws.Drawings.AddShape("Shape1", eShapeStyle.Rect);
shape.SetPosition(50, 200);
shape.SetSize(200, 100);
shape.Text = "Sample 1 text text text";
var fileDownloadName = "sample.xlsx";
var contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";//System.Net.Mime.MediaTypeNames.Application.Octet
var fileStream = new MemoryStream();
pck.SaveAs(fileStream);
fileStream.Position = 0;
var fsr = new FileStreamResult(fileStream, contentType);
fsr.FileDownloadName = fileDownloadName;
byte[] fileBytes = ReadToEnd(fileStream);
string fileName = "example";
return File(fileBytes, contentType, fileName);
}
}
私は何を間違っていますか/行方不明ですか? - その対話を自分で書かなければなりませんか?
PN: 私もこの方法を試みました
byte[] fileBytes = ReadToEnd(fileStream);
string fileName = "example";
return File(fileBytes, contentType, fileName);
もちろん、ストリームをバイトに変換する方法を見つけなければなりませんでしたが、何も表示されませんでした。
Chrome のネットワーク開発ツールの
画像 サポートしているブラウザを使用している場合、画像が小さくて申し訳ありません (ctl+MouseWheel でスクロールできない場合)。