2012-04-04 81 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