GridView导出成Excel字符"0"丢失/数字丢失的处理方式
2009-02-16 11:03
399 查看
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 ,同时还处理数字过长的办法
- Asp.net导出excel时长数字被科学计数法的解决方案。(身份证长数字作为字符处理)
- Asp.net导出excel时长数字被科学计数法的解决方案。(身份证长数字作为字符处理)
- 字符串内特殊字符在html_javascript_xml等内使用时的转换 ,"缺少十六进制数字"错误的处理
- 如何处理Oledb中EXCEL驱动读取EXCEL文件中字段长度大于255字符时出现的"数据截断"问题.
- jxl导出excel出现“文件错误,可能某些数据格式已丢失"
- Repeater 导出excel&数字以文本形式导出到excel&&DataTable通过gridview导出excel
- Oracle EBS 报表输出字符字段前部"0"被Excel自动去掉问题
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- Web导出Excel时"0"自动消失的解决方案
- 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
- 将整数转换为相应的一个字符数组。 分析:从个位提取数字,组合字符 符号位的处理 12345=>"12345"
- 用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式
- poi数据导出时纯数字字段被以字符形式生成到excel中
- 用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)
- 3.字符反转 输入一串字符,比如"abcd",以倒序的方式将它打印出来
- 关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法