苏飞论坛

标题: Excel导出去除科学计算法问题 [打印本页]

作者: yipeilin    时间: 2012-11-26 16:17
标题: Excel导出去除科学计算法问题
GridView 导出成Excel文件,这个代码在网上比较多.但是发现存在一个问题,导出的数据中如果有"012457890"的内容,用Excel打开后就变成了"12457890",少了前面的0;原因是Excel把它当作数字来格式化了,就把"0"给去掉了.
   解决思路:在Excel中作一个包含有"012457890"的内容,设定单元格的显示方式,然后保存成Html的文件,在查看源代码.
发现在CSS格式定义中有:td{mso-number-format:"\@";}.这样问题就容易解决了.
实际伤得代码只是比常见的处理方式多了一句而已.
   
      
[code=csharp] 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();[/code]
作者: 幻雪丶逆时光    时间: 2013-1-5 13:20
mark   这个可以有

不过貌似 我曾经在网上有专门的 接口来的 不用这
作者: 站长苏飞    时间: 2013-1-5 14:16
不错
作者: yipeilin    时间: 2013-1-21 15:01
admin 发表于 2013-1-5 14:16
不错

飞哥   给个勋章呗  

作者: 站长苏飞    时间: 2013-1-21 15:02
yipeilin 发表于 2013-1-21 15:01
飞哥   给个勋章呗

你目前只能得到一个新人的,我已给你设置过了,呵呵
作者: yipeilin    时间: 2013-1-21 15:06
谢谢  飞哥啊  还会再接再厉来那勋章的
作者: 站长苏飞    时间: 2013-1-21 15:30
yipeilin 发表于 2013-1-21 15:06
谢谢  飞哥啊  还会再接再厉来那勋章的

呵呵好的




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4