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