DataGrid 导出Excel通用方法

在项目中需要导出Excel的地方太多了,所以写了个方法,贴出来供需要的朋友参考。

/*****************************************

/* 参数说明:dg—需要导出的datagrid,file_name—导出的文件名(*.xls),begin_cols—起始列

/* end_cols—结束列

/*****************************************

public void deriveDataGridToExcel(DataGrid dg,string file_name,int begin_cols,int end_cols)
  {
   HttpContext.Current.Response.Clear();
   HttpContext.Current.Response.Buffer=true;
   HttpContext.Current.Response.Charset="GB2312";
   if(end_cols>dg.Columns.Count)
   {
    return;
   }
   if(begin_cols<0){
    begin_cols=0;
   }
   System.IO.StringWriter sw=new System.IO.StringWriter();
   DataGridItem item=null;
   foreach(DataGridItem item_tmp in dg.Controls[0].Controls)
   {
    if(item_tmp.ItemType==ListItemType.Header)
    {
     item=item_tmp;
    }
   }

   if(item!=null){
   for(int i=begin_cols;i<=end_cols;i++){        
     sw.Write(item.Cells[i].Text.Trim()+"/t");    
   }
   }
   sw.Write("/n");
   foreach(DataGridItem tmp in dg.Items)
   {
    for(int j=begin_cols;j<=end_cols;j++){
     sw.Write(tmp.Cells[j].Text.Trim()+"/t");
    }
    sw.Write("/n");
   }
   sw.Close();
   file_name=HttpUtility.UrlEncode(file_name);
   HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename="+file_name);
   HttpContext.Current.Response.ContentType = "application/ms-excel";
   HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
   HttpContext.Current.Response.Write(sw);
   HttpContext.Current.Response.End();

  } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值