MVC:将.xlsx文件作为已保存的下载而不是在Excel中打开

时间:2014-03-13 11:15:24

标签: asp.net-mvc mime-types epplus

我正在使用EPPlus生成Excel文件,我希望用户下载文件时提示保存它,而不是立即在Excel中打开文件。我怎么能在MVC中这样做?

这是我目前的代码:

    [HttpGet]
    public ActionResult DownloadData()
    {
        byte[] excelData = ExportService.GetServiceTrackerDataAsExcelData();
        return File(excelData, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", String.Format("ServiceTrackerData-{0}.xlsx", DateTime.Now.ToString("yyyy-MM-dd")));
    }

2 个答案:

答案 0 :(得分:3)

你不能。

您已经告诉浏览器该文件是附件,因此浏览器将在外部处理它。默认情况下,大多数浏览器将显示要求打开或保存的对话框。但是,用户可以选择将Excel文件设置为自动打开(通常是“下次自动执行此操作”的复选框)。如果用户选择在Excel中自动打开,则无法覆盖它。

答案 1 :(得分:0)

Response.AddHeader("content-disposition", "attachment;filename=ServiceTrackerData.xslx")