在数据导出到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 'xmlns:x=urn:schemas-microsoft-com:office:excel
xmlns=http://www.w3.org/tr/rec-html40>
';
}