在 C# 中的 Excel 报告中保存 Window

Save Window at Excel Report in C#

我有一个有效的 Excel 报告代码。尽管如此,当我单击该按钮时,文件会直接进入我的下载文件夹,而不会给我更改名称或选择我想要保存它的位置的选项。

代码如下:

public void GetExcel()
{
    var list = (IList<LeaseViewModel>)Session["currentList"];
    var grd = new GridView { DataSource = list, AutoGenerateColumns = true };
    grd.DataBind();
    Response.ClearContent();
    Response.AddHeader("Content-type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    Response.AddHeader("content-disposition", "attachment;filename=Leases.xls");
    Response.ContentType = "application/excel";
    var swr = new StringWriter();
    var tw = new HtmlTextWriter(swr);
    grd.RenderControl(tw);
    Response.Write(swr.ToString());
    Response.Flush();
    Response.End();
    tw.Close();
    swr.Close();
}

有人可以指出我应该更改什么才能让 window 弹出吗?

非常感谢。

感谢大家强调这是一个 browser-configuration 问题。

我认为一旦我在代码中定义了默认名称,我也可以将它定义为始终询问我想要的名称是什么。不过,我在不同的浏览器中进行了测试,事实证明你是对的,感谢您识别并注意到我。

关于默认名称问题,我是这样解决的:

之前:

Response.AddHeader("content-disposition", "attachment;filename=Leases.xls");

之后:

Response.AddHeader("content-disposition", "attachment;filename=" + Session["listName"] + "_Report.xls");

现在无论我导出什么报告,名称总是自定义的。

希望对像我这样的新手有所帮助(: