2013-05-07 137 views
16

我使用PHP自动化Excel电子表格。将单元格格式化为PHPExcel中的百分比

我一直在寻找一种实用的方式将单元格格式化为PHPExcel中的百分比。

我要像

0.077922078

的值更改为

8%

是否有一个解决方案?

在此先感谢。

+0

你可以使用小区()四舍五入到最接近的数字和之前比追加%把它放在你的excel文件中.http://php.net/manual/en/function.ceil.php – Dinesh 2013-05-07 21:39:25

回答

32

假设你的细胞是A1 ..

$objPHPExcel->getActiveSheet()->getStyle('A1') 
    ->getNumberFormat()->applyFromArray( 
     array( 
      'code' => PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00 
     ) 
    ); 
+3

我想要得到一个直接的百分比即2%,我需要删除_00表单FORMAT_PERCENTAGE_00? – cwiggo 2013-05-07 21:55:15

+0

无论如何它的作品声誉++ :)谢谢 – cwiggo 2013-05-07 21:58:19

+0

@Chris不要忘记标记为答案 – 2013-05-07 21:59:47

1

PHPExcel库已预定义只有少数基本格式常量。您实际上可以为任何目的构建您自己的(着色,格式化小数点&数千等)。 Excel中的格式化功能非常庞大。下面将格式化%的有3位小数和着色负值红:

$workSheet 
    ->getStyleByColumnAndRow($column, $row) 
    ->getNumberFormat() 
    ->setFormatCode('0.000%;[Red]-0.000%'); 
0

你可以试试这个代码:

$colLetter = "A"; 
$rowNumber = "1"; 

$objPHPExcel->getActiveSheet() 
    ->getStyle("$colLetter:$rowNumber") 
    ->getNumberFormat() 
    ->applyFromArray([ 
     "code" => PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE 
    ]); 
+0

你应该添加一个解释你的答案添加到另一个。 – 2017-07-19 12:20:49

+0

当然,你有正确的@gp_sflover,但我认为这段代码是自我描述的:) – simhumileco 2017-07-19 13:21:35