今天在做一个导出excel的功能,发现导出来的数字的内容会被显示为科学记数法,因此我就上网查了下解决的方法,自己稍微做了下总结,有需要的人可以参考看看,呵呵...
同时我也了解到了导出excel的原理就是在把输出结果传送到浏览器上,然后浏览器启动对应的应用程序来处理这个输出文档。
这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。
因此把mime类型设为:application/vnd.ms-excel,我是这么写的:response.setContentType("application/vnd.ms-excel;charset=utf-8");
对应的想要在excel显示的形式就必须经过设置,然后再输出来的,把样式设置下就可以了。
设置样式我总结了两种方法:
第一是内嵌样式的写法,例如给标签对
第二就是使用内部样式,但是内部样式表只对所在的网页有效。
table td,th{vnd.ms-excel.numberformat:@;text-align: center;}
table th{color:red}
<tr>
<td>4654td>
<td style='vnd.ms-excel.numberformat: #0.00%'>0.2465465643td>
tr>
table>
1) 文本:vnd.ms-excel.numberformat:@ 2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd 3) 数字:vnd.ms-excel.numberformat:#,##0.00 4) 货币:vnd.ms-excel.numberformat:¥#,##0.00 5) 百分比:vnd.ms-excel.numberformat: #0.00%