日期:2014-05-17  浏览次数:20867 次

PHPExcel如何设置某列的格式为数值
数据库中值为0的字段,通过PHPExcel导出到Excel里怎么就变成空白的了,能不能让它显示为0呢? PHPExcel版本为1.7.9 ,导出格式为Excel2003。下面的代码是在网上找的,但一直没有测试成功,还请有这方面经验的朋友指点一二。
//设置单元格内容的数字格式。  
//  
//如果使用了 PHPExcel_Writer_Excel5 来生成内容的话,  
//这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的  
//各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode  
//为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要  
//修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法,  
//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一  
//行代码:   
//if($ifmt === '0') $ifmt = 1;  
//  
//设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字  
//被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容  
//都按原始内容全部显示出来。  
$objStyleA5  
    ->getNumberFormat()  
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); 
设置格式
// Set cell number formats
echo date(’H:i:s’) . ” Set cell number formats\n”;
$objPHPExcel->getActiveSheet()->getStyle(’E4′)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
$objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle(’E4′), ‘E5:E13′ );
phpexce

------解决方案--------------------
估计0是null,所以不显示了,可以换个思路,让他显示为字符串 
$number = 0;
echo ''.$number