Asp.Net导出数据到Excel

 

 

对应的详细信息:如下图

如图,根据当前的gv标题对应的id,然后生成excel表格

 

代码如下:

 

ExpandedBlockStart.gif 代码
     protected   void  btnToExcel_Click( object  sender, EventArgs e)
    {
        DGToExcel();
    }
    
public   void  DGToExcel()
    {
        GridView gvNew 
=   new  GridView();

        gvNew.DataSource 
=  GetData();
        gvNew.DataBind();

        System.Web.UI.Control ctl 
=  gvNew;
        HttpContext.Current.Response.AppendHeader(
" Content-Disposition " " attachment;filename=Excel.xls " );
        HttpContext.Current.Response.Charset 
=   " UTF-8 " ;
        HttpContext.Current.Response.ContentEncoding 
=  System.Text.Encoding.Default;
        HttpContext.Current.Response.ContentType 
=   " application/ms-excel " ;
        
// ctl.Page.EnableViewState = false;
        System.IO.StringWriter tw  =   new  System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw 
=   new  System.Web.UI.HtmlTextWriter(tw);
        ctl.RenderControl(hw);
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.End();
    }

    
private  DataTable GetData()
    {
        DataTable dt 
=  CreateStructure();
        
for  ( int  i  =   0 ; i  <  gvMsg.Rows.Count; i ++ )
        {
            CheckBox cb 
=  (gvMsg.Rows[i].FindControl( " chkSelect " ))  as  CheckBox;
            
if  (cb.Checked)
            {
                
int  MsgId  =   0 ;
                
try
                {
                    MsgId 
=   int .Parse((gvMsg.Rows[i].FindControl( " lblId " as  Label).Text);
                }
                
catch  (Exception)
                {
                    
continue ;
                }
                Message msg 
=  MessageManage.GetMessageById(MsgId);
                DataRow dr 
=  dt.NewRow();
                dr[
" 编号 " =  msg.Id;
                dr[
" 标题 " =  msg.Title;
                dr[
" 内容 " =  msg.Content;              
                dr[
" 消息从何处发送 " =   this .GetMsgAddress(msg.MsgType).ToString();
                dr[
" 意向产品 " =  GetProduct(MsgId);
                dr[
" 代理人/发信人 " =  msg.AgentManName;
                dr[
" 代理区域 " =  msg.AgentArea;
                dr[
" 代理产品类型 " =  GetType(msg.AgentType);
                dr[
" 电话 " =  msg.Phone;
                dr[
" 地址 " =  msg.Address;
                dr[
" 发送时间 " =  msg.SendTime;
                dt.Rows.Add(dr);
            }
        }

        
return  dt;
    }

    
private  DataTable CreateStructure()
    {       

        DataTable dt 
=   new  DataTable();
        dt.Columns.Add(
new  DataColumn( " 编号 " typeof ( int )));
        dt.Columns.Add(
new  DataColumn( " 标题 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 内容 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 消息从何处发送 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 意向产品 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 代理人/发信人 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 代理区域 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 代理产品类型 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 电话 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 地址 " typeof ( string )));
        dt.Columns.Add(
new  DataColumn( " 发送时间 " typeof (DateTime)));
        
return  dt;
    }

 

 

但是我也遇到了一个问题,就是excel生成的超级链接,是以文本的形式显示出来,哪位大侠遇到这样的问题,请指点迷津.

 

转载于:https://www.cnblogs.com/qixuejia/archive/2010/01/30/1659715.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值