2013-05-07 26 views
16

Automatyzuję arkusz kalkulacyjny programu Excel przy użyciu PHP.Formatowanie komórki do wartości procentowej w PHPExcel

Szukałem sposobu na pragmatyczne sformatowanie komórki do wartości procentowej w PHPExcel.

chcę zmienić wartość jak

0,077922078

do

8%

Czy istnieje rozwiązanie tego problemu?

Z góry dziękuję.

+0

można użyć ceil(), aby zaokrąglić do najbliższej liczby i niż dołączania% przed umieszczenie go w pliku ur excel..http: //php.net/manual/en/function.ceil.php – Dinesh

Odpowiedz

32

zakładając komórki A1 jest ..

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

Sądzę, że aby uzyskać prosty procent, tj. 2%, muszę usunąć formularz _00 FORMAT_PERCENTAGE_00? – cwiggo

+0

To działa tak, więc reputacja ++ :) Dzięki – cwiggo

+0

@Chris nie zapomnij oznaczyć jako odpowiedź –

1

PHPExcel biblioteka posiada predefiniowane tylko kilka podstawowych stałych formatowania. Możesz zbudować swój własny w praktycznie dowolnym celu (kolorowanie, formatowanie dziesiętne & tysięcy itp.). Możliwości formatowania w Excelu są ogromne. W następstwie sformatuje procent z 3 miejsc po przecinku i kolorowanie wartości ujemne na czerwono:

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

Można spróbować tego kodu:

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

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

Powinieneś dodać wyjaśnienie, co twoja odpowiedź dodaje do drugiej. –

+0

Tak, oczywiście, masz prawa @gp_sflover, ale pomyślałem, że ten fragment kodu sam się opisał :) – simhumileco