I'm using PHPSpreadSheet and I want to set money format for a cell. In PHPExcel you can do this by using the following lines...
$this->phpExcelObject->getActiveSheet()
->getStyle('D4')
->getNumberFormat()
->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
I tried to this in PHPSpreadSheet, this is what i did...
$this->spreadsheet->getActiveSheet()
->getStyle('D4')
->getNumberFormat()
->setFormatCode('$ #,##0.00');
But it doesn't work. Any ideas? or am I doing it wrong? Thanks in advance.
I was able to do the following with PHPSpreadsheet:
$spreadsheet->getActiveSheet()
->getStyle($thisCol)
->getNumberFormat()
->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
The format code for FORMAT_CURRENCY_USD_SIMPLE
==
'"$"#,##0.00_-'
You can use this, if you are working with applyFromArray:
$sheet = $spreadsheet->getActiveSheet();
$sheet->getStyle($thisCol)->applyFromArray(
'numberFormat' => [
'formatCode' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR
]
);
Otherwise use it like this:
$sheet = $spreadsheet->getActiveSheet();
$sheet->getStyle($thisCol)
->getNumberFormat()
->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR);
Use FORMAT_CURRENCY_USD
for dollar
Note: You can also add _SIMPLE e.g. FORMAT_CURRENCY_EUR_SIMPLE if you like to show two decimal point values e.g. 12,62 € instead of 12 €
Checkout the class \PhpOffice\PhpSpreadsheet\Style\NumberFormat
to find out all possible values.
The class is stored in vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Style\NumberFormat.php
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With