我一直在关注下面列出的这些链接,我找到了编写这个 SMALL 创建 Excel 和下载功能的最佳方法。(使用 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);
当然,我必须弄清楚如何将 Stream 转换为 Byte,但它也没有显示任何内容。
Chrome 网络开发工具
的图片 如果您在支持的浏览器中,对于小图片(如果您看不到它,请使用 ctl+MouseWheel 滚动),我们深表歉意。