在数据导出到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>'; }
后面就是以
以上就是PHP导出excel时数字变为科学计数的解决方法 的内容,更多相关内容请关注PHP中文网(www.php.cn)!