首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Gridview导出成Excel 有些列小弟我不想要,该如何弄?多谢!

2012-01-16 
Gridview导出成Excel 有些列我不想要,该怎么弄?谢谢!!Gridview导出成Excel有些列我不想要,该怎么弄?谢谢!!

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

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


有没有具体点的说明啊 ?
[解决办法]
Excel自定义导出,不过比较麻烦
[解决办法]
这样岂不是要去重新读一次数据库?=======> 因为要重新绑定,所以是必须的.
[解决办法]
我觉得建两张GV比较好,需要导出的一张把他的是否可见显示为false 把不需要的列隐藏掉不就可以了么?
[解决办法]
use Interop.Excel.dll
[解决办法]
直接填充datatable里开始导最好.想要哪些就哪些.
DataTable dt=ds.Tables[ "table1 "];
string name=System.Configuration.ConfigurationSettings.AppSettings[ "downloadurl "].ToString()+DateTime.Today.ToString( "yyyyMMdd ")+new Random(DateTime.Now.Millisecond).Next(10000).ToString()+ ".csv FileStream fs=new FileStream(name,FileMode.Create,FileAccess.Write);
StreamWriter sw=new StreamWriter(fs,System.Text.Encoding.GetEncoding( "gb2312 "));
sw.WriteLine( "帐单号,状态,结算单位,应收,已收,待收,RMB,USD,开航日,挂号部门 ");
foreach(DataRow dr in dt.Rows)
{
sw.WriteLine(dr[ "InvoiceNo "]+ ", "+dr[ "status "]+ ", "+dr[ "CompanyName "]+ ", "+dr[ "Amount "]+ ", "dr[ "AmountPayed "]+ ", "dr[ "AmountNeed "]+ ", "dr[ "RMB "]+ ", "+dr[ "USD "]+ ", "dr[ "BillNo "]+ ", "dr[ "SpGroup "]);
}
sw.Close();
Response.AddHeader( "Content-Disposition ", "attachment; filename= " + Server.UrlEncode(name));
Response.ContentType = "application/ms-excel ";
Response.WriteFile(name); Response.End();
[解决办法]
antiking(Q狼E行-吹雪留香一点红,孤城寻欢花满楼) ( ) 信誉:92 Blog 加为好友 2007-04-28 16:49:04 得分: 0


直接填充datatable里开始导最好.想要哪些就哪些.


顶!!!不用读数据库。
[解决办法]
隐藏掉不用的列就行了

热点排行