2013-05-07 2 views
16

Я автоматизирую таблицу Excel с использованием PHP.Форматирование ячейки в процентах в PHPExcel

Я искал способ прагматически форматировать ячейку в процентах в PHPExcel.

Я хочу, чтобы изменить значение, как

0,077922078

в

8%

Есть ли решение для этого?

Заранее спасибо.

+0

вы можете использовать CEIL(), чтобы округлить до ближайшего числа, и чем добавляемого% перед поместив его в ur excel file..http: //php.net/manual/en/function.ceil.php – Dinesh

ответ

32

при условии, ваша клетка является A1 ..

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

Я предполагаю, что для получения прямого процента, т.е. 2%, мне нужно удалить форму _00 FORMAT_PERCENTAGE_00? – cwiggo

+0

Он работает так или иначе, так что репутация ++ :) Спасибо – cwiggo

+0

@ Крис не забудьте отметить как ответ – 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

Вы должны добавить объяснение того, что ваш ответ добавляет к другому. –

+0

Да, конечно, у вас есть право @gp_sflover, но я думал, что этот фрагмент кода описывается самостоятельно :) – simhumileco