How to set money format in PhpSpreadSheet? How to set money format in PhpSpreadSheet? php php

How to set money format in PhpSpreadSheet?


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


Try this:

<?phpuse \PhpOffice\PhpSpreadsheet\Spreadsheet;use \PhpOffice\PhpSpreadsheet\Cell\DataType;$xls   = new Spreadsheet();$sheet = $xls->getActiveSheet();$sheet->getStyle('D4')->getNumberFormat()->setFormatCode('###,###,###.##');$sheet->setCellValueExplicit('D4', $your_value, DataType::TYPE_NUMERIC);