导出EXCEL数字显示为科学计数法的问题

今天在做一个导出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>

 
 同样,我们也可以给<div></div>添加样式,也可以给<tr></tr>,<table></table>添加样式,但是要注意的是你设置的style在不一定会起作用,每个标签都是“就近原则”的,比如下面的例子,table和td都设置了style,但是tr地下的两个td中,第一个是根据table的设置显示的,但是第二个会根据自己的设置的来显示的
 
< table   style= 'vnd.ms-excel.numberformat:#,##0.00' >

      <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% 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值