【Vegas原创】页面(图表+table+GridView)导出为excel(07-12-5更新版)

图表+table

     protected   void  Button3_Click( object  sender, EventArgs e)
    
{
        Response.Clear();
        Response.Buffer 
= true;
        Response.Charset 
= "GB2312";
        Response.AppendHeader(
"Content-Disposition""attachment;filename=FileName.xls");
        
// 
        Response.ContentEncoding = System.Text.Encoding.UTF7;
        Response.ContentType 
= "application/ms-excel";//

        System.IO.StringWriter oStringWriter 
= new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter);
        
//path like http:// 
        string strPath = "select pms_value from code_list where pms_type='chart_path'";
        DataSet ds 
= db.GetDataSet(strPath);
        
string path = ds.Tables[0].Rows[0][0].ToString();

        
string imagePath = path + this.DaxonTechChartWeb1.ID + "." + this.DaxonTechChartWeb1.ImageType.ToString();

        oHtmlTextWriter.AddAttribute(HtmlTextWriterAttribute.Src, imagePath);

        
//tableExcel is the Table
        tableExcel.RenderControl(oHtmlTextWriter);
        Response.Output.Write(oStringWriter.ToString());

        Response.Flush();
        Response.End();


    }


gridview:

     protected   void  Button_toExcel_Click( object  sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer 
=   true ;
        Response.Charset 
=   " GB2312 " ;
        Response.AppendHeader(
" Content-Disposition " " attachment;filename=FileName.xls " );
        
//  如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
        Response.ContentEncoding  =  System.Text.Encoding.UTF7;
        Response.ContentType 
=   " application/ms-excel " ; // 设置输出文件类型为excel文件。 
        System.IO.StringWriter oStringWriter  =   new  System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter 
=   new  System.Web.UI.HtmlTextWriter(oStringWriter);
       
//   turn off paging 
       
        GridView1.AllowPaging 
=   false ;
        GridView1.Columns[
0 ].Visible  =   false ;
        GridView1.DataBind(); 
        GridView1.RenderControl(oHtmlTextWriter);
        Response.Output.Write(oStringWriter.ToString());
        Response.Flush();
        Response.End();
        
//  turn the paging on again 
        GridView1.AllowPaging  =   true ;
        GridView1.DataBind();

    }



07-12-5更新版
因有些chart在前台有加特效之类的,造成HtmlTextWriter在锁定元件上出错。
此就需要RenderBeginTagRenderEndTag来全部手动写入。

     protected   void  Button3_Click( object  sender, EventArgs e)
    
{
        Response.Clear();
        Response.Buffer 
= true;
        Response.Charset 
= "GB2312";
        Response.AppendHeader(
"Content-Disposition""attachment;filename=FileName.xls");
        
// 
        Response.ContentEncoding = System.Text.Encoding.UTF7;
        Response.ContentType 
= "application/ms-excel";//

        System.IO.StringWriter oStringWriter 
= new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter);

        
//path
        string strPath = "select pms_value from code_list where pms_type='chart_path'";
        DataSet ds 
= db.GetDataSet(strPath);
        
string path = ds.Tables[0].Rows[0][0].ToString();
        
string imagePath = path + this.DaxonTechChartWeb1.ID + "." + this.DaxonTechChartWeb1.ImageType.ToString();
        
//this.DaxonTechChartWeb1.ImagePath = imagePath;
        oHtmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Table);
            oHtmlTextWriter.AddAttribute(HtmlTextWriterAttribute.Height, 
this.DaxonTechChartWeb1.Height.Value.ToString());
            oHtmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Tr);
                oHtmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Td);
                    oHtmlTextWriter.AddAttribute(HtmlTextWriterAttribute.Src, imagePath);
                    oHtmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Img);
                oHtmlTextWriter.RenderEndTag();
            oHtmlTextWriter.RenderEndTag();
            oHtmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Tr);
                oHtmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Td);
                    VegasGood.RenderControl(oHtmlTextWriter);
                oHtmlTextWriter.RenderEndTag();
             oHtmlTextWriter.RenderEndTag();
        oHtmlTextWriter.RenderEndTag();
        Response.Output.Write(oStringWriter.ToString());

        Response.Flush();
        Response.End();

    }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值