PHPExcel - 如何舍入值?

时间:2012-04-04 01:37:22

标签: php windows phpexcel

我是否知道使用百分比符号将列值四舍五入为2位小数时要使用的函数是什么?例如:1.88%而不是1.88230293

$ worksheet_details-> setCellValue(“D14”,“= SUM((F33 / F34))”);

如何对单元格D14中的值进行舍入?


解决方案:

顺便说一句,在我继续寻找互联网上的解决方案后,我得到了这个......

$percentageFormat = '#.## \%;[Red]-#.## \%';
$worksheet_details->setCellValue("C14", "=SUM((C33 / C34) * 100)");
$worksheet_details->getStyle('C14')->getNumberFormat()->setFormatCode($percentageFormat);

如果你希望它以0.xx格式显示,只需将第一个#更改为0 ......否则它只会显示.xx

6 个答案:

答案 0 :(得分:3)

如果您只想将其输出为字符串:

echo '%'.number_format($your_number,2);

如果您想将其保留为数值浮动值(但在百分比上有所妥协):

echo round($your_number,2);

如果您正在寻找Excel功能,请使用:

$worksheet_details->setCellValue('D14', '=TEXT(F33/F34,"0.00%")');

答案 1 :(得分:2)

我猜您正在寻找ROUND()功能:

=ROUND(10/3; 2)

或者,在您的情况下:

$worksheet_details->setCellValue("D14", "=ROUND(SUM((F33 / F34)); 2)");

答案 2 :(得分:1)

如果你想在PHP中使用round()进行舍入,可以指定你想要一个浮点数的精度:

echo round(1.95583, 2) . "%";  // 1.96%

如果您想在Excel中进行舍入,则可以使用ROUND function

$worksheet_details->setCellValue("D14", "=TEXT(SUM((F33 / F34)), '###.##%')");

$worksheet_details->setCellValue("D14", "=TEXT(SUM((F33 / F34)/100), '###.##%')");

如果数字已经是百分比。

希望它有所帮助。

答案 3 :(得分:0)

如果您想以百分比数字格式显示,可以试试这个。

$percentVal = '95.6';

PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );


$percentCell->setValue($percentVal . '%');
$sheet->getStyleByColumnAndRow($percentCellIndex, $dataRow)->getNumberFormat()->setFormatCode('0.0%');

//输出95.6%并在Excel中格式化为数字

答案 4 :(得分:0)

正如@ariefbayu所说,

$worksheet_details->setCellValue("D14", "=ROUND(SUM((F33 / F34)); 2)");

应该可以,但是对我来说它抛出了错误:

PHP Fatal error:  Uncaught PHPExcel_Calculation_Exception

所以我将;更改为,

结果:

$worksheet_details->setCellValue("D14", "=ROUND(SUM((F33 / F34)), 2)");

答案 5 :(得分:0)

您可以将单元格的格式设置为自动将值四舍五入为整数。

$activeSheet->getStyle("A1")->getNumberFormat()->setFormatCode('##');