GridView导出成Excel字符"0"丢失/数字丢失的处理方式

  GridView 导出成Excel文件,这个代码在网上比较多.但是发现存在一个问题,导出的数据中如果有"012457890"的内容,用Excel打开后就变成了"12457890",少了前面的0;原因是Excel把它当作数字来格式化了,就把"0"给去掉了.
   解决思路:在Excel中作一个包含有"012457890"的内容,设定单元格的显示方式,然后保存成Html的文件,在查看源代码.
发现在CSS格式定义中有:td{mso-number-format:"/@";}.这样问题就容易解决了.
实际伤得代码只是比常见的处理方式多了一句而已.
  

        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Buffer 
=   true ;
        HttpContext.Current.Response.Charset 
=   " UTF-8 " ;
        HttpContext.Current.Response.AppendHeader(
" Content-Disposition " " attachment;filename=WebOrderExcelFile.xls " );
        HttpContext.Current.Response.ContentEncoding 
=  System.Text.Encoding.UTF8;
        HttpContext.Current.Response.ContentType 
=   " application/ms-excel " ;

        
string  strStyle  =   " <style>td{mso-number-format:/ " //@/ " ;}</style> " ;
        System.IO.StringWriter tw 
=   new  System.IO.StringWriter();
        HtmlTextWriter hw 
=   new  HtmlTextWriter(tw);
        gvOrder.Page.EnableViewState 
=   false ;
        tw.WriteLine(strStyle);
        gvOrder.RenderControl(hw);        
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.Flush();
        HttpContext.Current.Response.End();

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值