luc*_*One 5 c# asp.net gridview export-to-excel
我想将GridView数据转换为Excel工作表.
我已经编写了下面的代码,但它给出了错误:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=Avukat.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
Response.Write(stringWrite.ToString());
Response.End();
}
Run Code Online (Sandbox Code Playgroud)
错误:
必须将带有'GridView'类型的控件'ctl00_ContentPlaceHolder1_GridView1'放在带有runat = server的表单标记内.
我认为您的 gridview 包含一个linkbutton/Imagebutton or another type of control,这就是为什么当您尝试将 GridView 导出到 Excel 时出现异常。
在使用该控件之前,您需要在 Page 代码后面或 BasePage 代码后面添加以下几行。
public override void VerifyRenderingInServerForm(Control control)
{
}
Run Code Online (Sandbox Code Playgroud)
您可以使用此代码,因为此代码经过测试并且运行良好:
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
Response.AddHeader("content-disposition", "attachment; filename=Avukat.xls");
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.Flush();
Response.End();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8776 次 |
| 最近记录: |