兔八哥极品软件园    运行: 2698天 | 文章:583 篇 | 评论:558 条 | 碎语:1条

c# 导出Excel去除科学计算法问题

作者:admin 发布于:2013-1-5 14:07 Saturday 分类:.NET


导出成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();

标签: Excel


Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap