php中导出数据到excel时数字变为科学计数的解决方法


Posted in PHP onFebruary 03, 2013

在数据导出到excel时数字格式不对,一般分为以下两种情况。

1、excel单元格设置长度不够

解决方法:

//在excel.php文件中 
$objActSheet = $objPHPExcel->getActiveSheet(); 
// 设置 栏目名称 
$objActSheet->setCellValue("b1", "卡号"); 
// 设置列的宽度 
$objActSheet->getColumnDimension('b')->setWidth(20);//改变此处设置的长度数值

2、字符被excel理解成数字了,一般就是把那个字段设置成文本 或者想办法加入一些空格一类的。
解决方法:

//添加数据处,主要是把要显示数据以chunk_split()函数处理以下,此函数的具体用法可以自己查看 
$objActSheet->setCellValue ( "b$i", chunk_split("123456789 ",4," ") );//当然,如果不想让用户看到数字间有空格,那就把要分割的字段值设大一些,如例子中的4设为大于等于9的即可。

我导出EXcel的主要代码的前面部分:

<? 
if(count($data)>40000){ 
$filename_type='csv'; 
}else{ 
$filename_type='xls'; 
} 
header("Content-Type: application/vnd.ms-excel"); 
Header("Accept-Ranges:bytes"); 
Header("Content-Disposition:attachment;filename=".$filename.".".$filename_type); //$filename导出的文件名 
header("Pragma: no-cache"); 
header("Expires: 0"); 
if($filename_type=='xls'){ 
echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns="http://www.w3.org/TR/REC-html40"> 
<head> 
<meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT"> 
<meta http-equiv=Content-Type content="text/html; charset=gb2312"> 
<!--[if gte mso 9]><xml> 
<x:ExcelWorkbook> 
<x:ExcelWorksheets> 
<x:ExcelWorksheet> 
<x:Name></x:Name> 
<x:WorksheetOptions> 
<x:DisplayGridlines/> 
</x:WorksheetOptions> 
</x:ExcelWorksheet> 
</x:ExcelWorksheets> 
</x:ExcelWorkbook> 
</xml><![endif]--> </head>'; 
}

后面就是以<table><tr><td></td></tr></table>的格式输出数据

查了大半天终于查到了一点有用的资料,现在摘抄如下:

“首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式:
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%
这些格式你也可以自定义,比如年月你可以定义为:yy-mm等等。那么知道了这些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添加到对应的标签对(即闭合标签)即可。如<td></td>,给标签对<td></td>添加样式,如下: <td style="vnd.ms-excel.numberformat:@">410522198402161833</td>
同样,我们也可以给<div></div>添加样式,也可以给<tr></tr>,<table></table>添加样式;当我们在父标签对和子标签对都添加样式时,数据会以哪一个样式呈现呢?经过测试,会以离数据最近的样式呈现.

PHP 相关文章推荐
数据库相关问题
Oct 09 PHP
如何给phpadmin一个保护
Oct 09 PHP
计数器详细设计
Oct 09 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
php使用curl存储cookie的示例
Mar 31 PHP
简单说说PHP优化那些事(经验分享)
Nov 27 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 PHP
PHP Header失效的原因分析及解决方法
Nov 16 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 #PHP
php数组去重的函数代码
Feb 03 #PHP
php中使用临时表查询数据的一个例子
Feb 03 #PHP
PHP应用JSON技巧讲解
Feb 03 #PHP
set_include_path和get_include_path使用及注意事项
Feb 02 #PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 #PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 #PHP
You might like
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
探讨php中header的用法详解
2013/06/07 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
php实现URL加密解密的方法
2016/11/17 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
JavaScript如何操作css
2020/10/24 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
公司承诺书范文
2014/05/19 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
未婚证明书模板
2014/10/08 职场文书
2015大学生实训报告
2014/11/05 职场文书
入党函调证明材料
2015/06/19 职场文书
Python jiaba库的使用详解
2021/11/23 Python