2013-10-01 19 views
8

PHPExcel utilizza $ e EUR solo:

const FORMAT_CURRENCY_USD_SIMPLE  = '"$"#,##0.00_-'; 
const FORMAT_CURRENCY_USD   = '$#,##0_-'; 
const FORMAT_CURRENCY_EUR_SIMPLE  = '[$EUR ]#,##0.00_-'; 

Che cosa ho bisogno è quello di ottenere le altre valute (io uso "zł" per zloty polacco). Tutte le valute tranne $ e EUR sono contrassegnate come "Generale".

Domanda di follow-up alla risposta di SWilk: Come utilizzo il formato personalizzato. Ho inserito nuove costanti in NumberFormat.php:

const FORMAT_CURRENCY_PLN_1 = '_-* #,##0.00\ [$zł-415]_-'; 
const FORMAT_CURRENCY_PLN_2 = '\-* #,##0.00\ [$zł-415]_-'; 
const FORMAT_CURRENCY_PLN_3 = '_-* "-&quot'; 
const FORMAT_CURRENCY_PLN_4 = '??\ [$zł-415]_-;[email protected]_-'; 

ok? Che altro devo fare per leggere i formati utilizzando

$objPHPExcel->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(); 

risposta

3

ho salvato un file excel semplice con una cella formattata come cellule valuta denominate in PLN. Decompresso il .xlsx e controllato il formato. E ':

_-* #,##0.00\ [$zł-415]_-;\-* #,##0.00\ [$zł-415]_-;_-* "-"??\ [$zł-415]_-;[email protected]_- 

Prova utilizzando questo formato o scrivere il proprio sulla base di questo.

+0

Grazie. Ma non so come usarlo. Ho inserito nuovi CONSTants in NumberFormat.php: – Marek

6

Le costanti predefinite sono definite solo per dollari e euro, ma PHPExcel non limita solo a tali valori costanti costanti. Sono semplicemente archi; ed è possibile impostare qualsiasi codice di formato MS Excel valido come maschera numberFormat semplicemente impostandolo sul valore di stringa appropriato. Generalmente non è una buona idea aggiungere le tue nuove costanti a numberFormat.php, dato che dovrai ricordarti di aggiungerle ogni volta che esegui l'aggiornamento a una nuova versione di PHPExcel ... è meglio definire costanti aggiuntive nel tuo proprio codice

È possibile applicare un formato di valuta alle celle utilizzando:

$objPHPExcel->getActiveSheet() 
    ->getStyle('E4:E13') 
    ->getNumberFormat() 
    ->setFormatCode(
     '_-* #,##0.00\ [$zł-415]_-' 
    ); 

Oppure, se si definisce una nuova costante dei vostri stessi utilizzando

define('FORMAT_CURRENCY_PLN_1', '_-* #,##0.00\ [$zł-415]_-'); 

allora si può applicare alle vostre cellule utilizzando

$objPHPExcel->getActiveSheet() 
    ->getStyle('E4:E13') 
    ->getNumberFormat() 
    ->setFormatCode(
     FORMAT_CURRENCY_PLN_1 
    ); 
+0

Grazie mille! Ma ho bisogno di getFormatCode, non di impostarlo. Ho una tale impostazione nel file excel e ho bisogno di inserire il suffisso di valuta in tutte le celle con FORMAT_CURRENCY_PLN_1. – Marek

+0

Se stai leggendo una maschera di formato valuta che contiene Złote da un file che hai caricato, allora è quello che dovresti vedere ... a meno che tu abbia caricato il file con readDataOnly impostato su true –

+0

Ok, controllerò esso. Grazie ancora. – Marek

1

per sterlina inglese (sterlina) phpExcel

$numformat= '£#,##0_-'; 
$activeSheet->getStyle($cell)->getNumberFormat()->setFormatCode($numformat); 
$activeSheet->setCellValue($cell,$val4); 

ho scoperto il valore corretto per decomprimere un XLSX con una cella formattata come valuta £ (o una cella con un £ entrato in ad esso: sembrava essere la stessa formattazione)

Problemi correlati