zoukankan      html  css  js  c++  java
  • [转]Excel导出及数据格式化处理

     1 public void ToExcel(System.Web.UI.Control ctl, string FileName)
     2         {
     3             HttpContext.Current.Response.Charset = "UTF-8";
     4             HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
     5             HttpContext.Current.Response.ContentType = "application/ms-excel";
     6             HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName + ".xls");
     7             ctl.Page.EnableViewState = false;
     8             System.IO.StringWriter tw = new System.IO.StringWriter();
     9             HtmlTextWriter hw = new HtmlTextWriter(tw);
    10             ctl.RenderControl(hw);
    11             HttpContext.Current.Response.Write(tw.ToString());
    12             HttpContext.Current.Response.End();
    13         }
    14         public override void VerifyRenderingInServerForm(Control control)
    15         {
    16             //base.VerifyRenderingInServerForm(control);
    17         }
    18         protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    19         {
    20             if (e.Row.RowType == DataControlRowType.DataRow)
    21             {
    22                 //e.Row.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@");//这里是将要导出到execl里的第一列格式化为字符类型。
    23                 //e.Row.Cells[3].Attributes.Add("style", "vnd.ms-excel.numberformat:¥#,###.00");//这里是格式化为货币类型。
    24                 e.Row.Cells[4].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
    25                 //1) 文本:vnd.ms-excel.numberformat:@
    26                 //2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
    27                 //3) 数字:vnd.ms-excel.numberformat:#,##0.00
    28                 //4) 货币:vnd.ms-excel.numberformat:¥#,##0.00
    29                 //5) 百分比:vnd.ms-excel.numberformat: #0.00%
    30             }
    31         }

    以上只是部分格式,还有更多,可以打开Excel查看,如下图:

    图一、Excel其它格式

    由于我需要导出一串类似于"201304110093"这样的字符串,但导出Excel后,其格式竟然为"2.01304E+11",实在太无耻了~,于是我在Excel中一通乱试,终于发现,把储存格式调为上图那个自定义的"0"格式即一切正常,所以,嘿嘿,在代码中果断加入:

    1 protected void gvAboveFiveList_RowDataBound(object sender, GridViewRowEventArgs e)
    2     {
    3         if (e.Row.RowType == DataControlRowType.DataRow)
    4         {
    5             //讓輸出的數字以自定義的0格式輸出
    6             e.Row.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:0");
    7         }
    8     }

    好了,收工啦~~

  • 相关阅读:
    selenium手机百度搜索
    selenium模拟手机浏览器
    selenium模拟登录赶集网,手动解决验证码问题
    selenium模拟登录京东,手动解决验证码问题,抓取购物车价格
    selenium模拟登录QQ空间,手动解决验证码问题
    两数之和&N数之和(求教!)
    Linux内核设计与实现——从内核出发
    Linux内核简介
    编程规范
    GIT基础使用
  • 原文地址:https://www.cnblogs.com/seasons1987/p/3022227.html
Copyright © 2011-2022 走看看