2012-04-04 27 views
2

我可以知道要使用哪个函数来将列值舍入为带有百分比符号的2位小数点?例如:1.88%而不是1.88230293PHPExcel - 如何提高价值?

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

如何取整单元格D14中的值?


SOLUTION:

顺便说一句,我以后继续保持看从互联网的解决方案,我得到这个...

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

只是改变了第一个#为0;如果您希望它以0.xx格式显示...否则它将显示.xx仅限于

+0

1.88格式化为数量为188%,0.0188是1.88%。你的帖子中有错误吗? – Incognito 2012-04-04 01:39:26

回答

3

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

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

如果你想保留它作为数字浮点值(但百分比妥协):

echo round($your_number,2); 

如果你正在寻找一个Excel的功能,用途:

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

好吧,不要将它回显出来,而应将其存储为变量。 – hohner 2012-04-04 01:49:34

+0

恩对不起杰米,我想我错过了我的问题中的一些事情..尝试阅读并尝试再次协助我? – 2012-04-04 01:50:02

+0

噢,我明白了 - 您希望Excel公式不是PHP的做法。我已将解决方案添加到我的答案中。 – hohner 2012-04-04 02:01:46

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), '###.##%')"); 

如果数字已经是一个百分比。

希望它有帮助。

+0

对不起eljunior,我想我错过了我的问题中的一些事情..尝试阅读并尝试再次协助我? – 2012-04-04 01:50:10

+0

我很抱歉,我很快查看了php标签,并没有正确地阅读这个问题。我编辑了我的答案,但我认为杰米的更好。 – elias 2012-04-04 02:07:25

2

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

=ROUND(10/3; 2) 

,或者在你的情况:

$worksheet_details->setCellValue("D14", "=ROUND(SUM((F33/F34)); 2)"); 
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