C# GridView导出到Excel.doc_第1页
C# GridView导出到Excel.doc_第2页
C# GridView导出到Excel.doc_第3页
C# GridView导出到Excel.doc_第4页
C# GridView导出到Excel.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GridView Export the Excel (Basic Code): . 首先看一个基础的应用。创建一个表格,见截图 然后将数据库中的数据绑定到GridView中的数据,代码如下:private void BindData()SqlConnection myConnection = new SqlConnection(Server=localhost;Database=School;Trusted_Connection=true);SqlDataAdapter ad = new SqlDataAdapter(SELECT * FROM Users, myConnection);DataSet ds = new DataSet();ad.Fill(ds);gvUsers.DataSource = ds;gvUsers.DataBind(); 现在,GridView中已经绑定了数据,接下来的任务就是导出到Excel。下面是button事件中的代码Response.ClearContent();Response.AddHeader(content-disposition, attachment; filename=MyExcelFile.xls);Response.ContentType = application/excel;StringWriter sw = new StringWriter();HtmlTextWriter htw = new HtmlTextWriter(sw);gvUsers.RenderControl(htw);Response.Write(sw.ToString();Response.End();并且还需要override一下VerifyRenderingInServerForm方法(这一点非常重要,否则在点击按钮后会报错,译者注),代码如下:public override void VerifyRenderingInServerForm(Control control)点击导出按钮后会弹出对话框,询问您打开或保存。选择打开文件,导出到Excel的结果如下图:Exporting GridView to Excel With Style:您是否注意到了以上代码存在一些的问题?是的,ID列开头的0都被截去了。如果你的ID是000345,导出后就编程了345。这个问题可以通过把css添加到输出流中来解决。为了使ID列正确显示,您需要将其储存为文本格式。Excel中的文本格式表示为mso-number-format:。protected void Btn_ExportClick(object sender, EventArgs e)string style = .text ; Response.ClearContent();Response.AddHeader(content-disposition, attachment; filename=MyExcelFile.xls);Response.ContentType = application/excel;StringWriter sw = new StringWriter();HtmlTextWriter htw = new HtmlTextWriter(sw);gvUsers.RenderControl(htw);/ Style is added dynamicallyResponse.Write(style); Response.Write(sw.ToString();Response.End();public override void VerifyRenderingInServerForm(Control control)在上面的代码中,我通过”style”变量来控制GridView列的样式。并通过Respnose.Write方法将其添加到输出流中。最后把样式添加到ID列。这一步需要在RowDataBound事件中完成protected void gvUsers_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.RowType = DataControlRowType.DataRow)e.Row.Cells1.Attributes.Add(class, text); 修改的结果如下:Exporting GridView With LinkButtons and Paging: 如果要导出的GridView中包含LinkButton或者分页(出现分页码时,译者注) 则将出现错误:通过修改页文件可以修正这个问题:EnableEventValidation = false. 看一下导出的文件在导出的文件中可以看见linkbutton和dropdownlist控件,虽然dropdownlist控件显示的数据的确是用户所选的项,但怎么看也不像是一个导出文件(我倒是觉的挺cool的:)译者注),现在应如何移除dropdownlist并显示选择的文字呢?我写了一个DisableControls函数,用使循环的方法将linkbutton和dropdownlist替换成literal控件private void DisableControls(Control gv)LinkButton lb = new LinkButton();Literal l = new Literal(); string name = String.Empty;for (int i = 0; i gv.Controls.Count; i+)if (gv.Controlsi.GetType() = typeof(LinkButton)l.Text = (gv.Controlsi as LinkButton).Text; gv.Controls.Remove(gv.Controlsi);gv.Controls.AddAt(i, l);else if (gv.Controlsi.GetType() = typeof(DropDownList)l.Text = (gv.Controlsi as DropDownList).SelectedItem.Text;gv.Controls.Remove(gv.Controlsi);gv.Controls.AddAt(i, l);if (gv.Controlsi.HasControls()DisableControls(gv.Controlsi); 方法非常简单,只需将linkbuton和dropdownlist替换成literal控件,并将选择项赋值给literal控件的文本属性。该方法需要在导出前调用protected void Btn_ExportExcelPaging(object sender, EventArgs e)DisableControls(gvUsers);Response.ClearContent();Response.AddHeader(content-disposition, attachment; filename=MyExcelFile.xls);Response.ContentType = application/excel;StringWrit

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论