日期:2014-05-19  浏览次数:20411 次

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();//重新绑定一下
}
------解决方案--------------------
这样岂不是要去重新读一次数据库?

--------------------------------------------
很多时候为了实现功能就要牺牲点效率,在数据量不是很大的情况下还是没有问题的
------解决方案--------------------