Linux 拨号vps windows公众号手机端

C#使用RenderControl将GridView控件导出到EXCEL的方法

lewis 7年前 (2019-01-11) 阅读数 13 #程序编程
文章标签 c#

以下是使用RenderControl将GridView控件导出到Excel的C#代码示例:

usingSystem;

usingSystem.Web.UI.WebControls;

usingSystem.IO;

usingSystem.Web.UI;

publicpartialclassExportToExcel:System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!IsPostBack)

{

//绑定GridView数据

BindGridViewData();

}

}

protectedvoidbtnExport_Click(objectsender,EventArgse)

{

//导出GridView到Excel

ExportGridToExcel();

}

privatevoidBindGridViewData()

{

//数据绑定代码,可以根据实际情况进行修改

GridView1.DataSource=YourDataSource;

GridView1.DataBind();

}

privatevoidExportGridToExcel()

{

Response.Clear();

Response.Buffer=true;

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

Response.Charset="";

Response.ContentType="application/vnd.ms-excel";

StringWritersw=newStringWriter();

HtmlTextWriterhw=newHtmlTextWriter(sw);

//为了确保GridView正常导出到Excel,需要将其包裹在一个Form中

//可以使用以下代码动态创建一个Form,并将GridView放入其中

//也可以在前端页面中添加一个隐藏的Form,并将GridView放入其中

//如:

//然后在代码中使用Form1.Controls.Add(GridView1)将GridView放入该Form中

Pagepage=newPage();

HtmlFormform=newHtmlForm();

GridView1.EnableViewState=false;

page.EnableEventValidation=false;

page.DesignerInitialize();

page.Controls.Add(form);

form.Controls.Add(GridView1);

page.RenderControl(hw);

//将GridView的HTML代码写入Response输出流,实现导出到Excel

Response.Output.Write(sw.ToString());

Response.Flush();

Response.End();

}

}

请注意,上述代码中的“YourDataSource”是您要绑定到GridView的实际数据源。您需要将其替换为自己的数据源。另外,如果GridView中使用了分页功能,导出的Excel将只包含当前显示的页面的数据。
请确保您的GridView控件和按钮控件具有正确的ID,并与代码中的代码匹配。
此外,导出到Excel的功能在一些较新版本的浏览器中可能会受到限制。如果您遇到问题,可以尝试使用其他方法,比如使用OpenXml来生成Excel文件。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门