GridView导出成Excel字符"0"丢失的处理方式
2008-04-17 12:46
316 查看
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();
解决思路:在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();
相关文章推荐
- GridView导出成Excel字符"0"丢失/数字丢失的处理方式
- GridView导出成Excel字符"0"丢失/数字丢失的处理方式 收藏
- gridview导出excel文件且把数字类型的列转换成字符导出(防止处理成科学计数法)
- Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
- GridView导出数据到Excel(形如身份证等数据的处理)
- GridView中的数据导出到Excel方法(包含处理模板列)
- 图解-Excel的csv格式特殊字符处理方式尝试笔记(个人拙笔)
- 关于Gridview中使用控件和图片导出到Excel的处理
- Asp.net导出excel时长数字被科学计数法的解决方案。(身份证长数字作为字符处理)
- 【转】Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
- php 导出excel中双引号与特殊字符的处理
- Asp.net导出excel时长数字被科学计数法的解决方案。(身份证长数字作为字符处理)
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- GridView导出数据到Excel(形如身份证等数据的处理)
- C#:GridView导出Excel,以及runat=server错误处理方法
- GridView中的数据导出到Excel方法(包含处理模板列)
- Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
- GridView 导出到excel ,同时还处理数字过长的办法
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- poi 导出excel 异常处理方式--曲线救国法