Gridview导出成Excel 有些列我不想要,该怎么弄?谢谢!!
Gridview导出成Excel 有些列我不想要,该怎么弄?谢谢!!
下面的是导出成excel的源代码:
//---------------------------
private void ToExcel(Control ctl, string FileName)
{
HttpContext.Current.Response.Charset = "UTF-8 ";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.ContentType = "application/ms-excel ";
HttpContext.Current.Response.AppendHeader( "Content-Disposition ", "attachment;filename= " + " " + FileName);
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
//---------------------------
现在可以导出成excel但有些列我不想要,该怎么做呢?
还有问各位这三行代码是什么意思,多谢!!
ctl.Page.EnableViewState = false;
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctl.RenderControl(hw);
------解决方案--------------------void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
//让索引为0的列不可见,实际上是产生的css代码
e.Row.Cells[0].Visible = false;
//other code if neccecary
}
------解决方案--------------------这样导出时候就没有了
------解决方案--------------------这样岂不是要去重新读一次数据库?
------解决方案--------------------我们用到导出的部分代码
protected void btnExport_Click(object sender, EventArgs e)
{
GridView1.AllowPaging = false;//不允许分页,这样可以把所有的记录得到
GridView1.DataBind();//重新绑定一下
GridView1.Columns[GridView1.Columns.Count - 1].Visible = false;//隐藏倒数1列
GridView1.Columns[GridView1.Columns.Count - 2].Visible = false;//隐藏倒数2列
ExportToExcel();//导出处理,和你上面的一样
GridView1.AllowPaging = true;//还原成允许分页
GridView1.DataBind();//重新绑定一下
}
------解决方案--------------------这样岂不是要去重新读一次数据库?
--------------------------------------------
很多时候为了实现功能就要牺牲点效率,在数据量不是很大的情况下还是没有问题的
------解决方案--------------------