【发布时间】:2018-09-25 14:46:21
【问题描述】:
希望你能帮助我。 我正在开发一个网页,它在 aspx 中生成一个 GridView,它可以工作,一个按钮在单击时将 gridview 导出到 excel 文件。第二种情况对我不起作用,文件是空的。这是代码:
protected void Button2_Click(object sender, EventArgs e) //click en botón Exportar- -Click to export
{
try
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "CUSS - Global Stats.xls"));
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.Unicode;
System.IO.StringWriter writer = new StringWriter();
System.Web.UI.HtmlTextWriter html = new System.Web.UI.HtmlTextWriter(writer);
GridView1.AllowPaging = false;
GridView1.RenderControl(html); //gpp prints outs
Response.Write(writer.ToString());
Response.Flush();
Response.End();
}
catch (Exception)
{
}
Gridview 在 asp 中正确生成,如图所示。GridViewResult
protected void Button1_Click(object sender, EventArgs e)
{
...
GridView1.DataSource = Prints.ToList();
GridView1.DataBind();
...
}
你能帮帮我吗?
【问题讨论】:
-
这不是 Excel 文件,而是具有虚假内容类型的 HTML 表格。使用像 EPPlus 这样的库来创建真正的
xlsx文件。 -
开始使用专门的库来创建 Excel 文件,例如 EPPlus。您现在所做的只是创建一个扩展名为 .xls 的 HTML 页面。
-
并处理错误。你的 catch 块是空的,所以如果有问题你不会知道的。
-
您在哪里找到您在问题中发布的代码?我很好奇,我想追踪向全世界推荐导出 HTML 并给它一个 XLS 扩展的人。 Cargo Cult Programming 的一个很好的例子。
-
@mason,我问自己同样的问题。人们在哪里找到这种导出数据的方法......这种问题类型每隔几天就会出现......