如何在PhpSpreadSheet中设置货币格式?

2022-08-30 22:13:18

我正在使用PHPSpreadSheet,我想为单元格设置货币格式。在PHPExcel中,您可以使用以下行来执行此操作...

$this->phpExcelObject->getActiveSheet()
     ->getStyle('D4')
     ->getNumberFormat()
     ->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);

我在PHPSpreadSheet中尝试了这个,这就是我所做的...

$this->spreadsheet->getActiveSheet()
     ->getStyle('D4')
     ->getNumberFormat()
     ->setFormatCode('$ #,##0.00');

但它不起作用。有什么想法吗?还是我做错了?提前致谢。


答案 1

我能够使用PHPSpreadsheet执行以下操作:

$spreadsheet->getActiveSheet()
    ->getStyle($thisCol)
    ->getNumberFormat()
    ->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);

的格式代码FORMAT_CURRENCY_USD_SIMPLE == '"$"#,##0.00_-'


答案 2

如果您使用的是 applyFromArray,则可以使用以下命令:

$sheet = $spreadsheet->getActiveSheet();

$sheet->getStyle($thisCol)->applyFromArray(

    'numberFormat' => [
        'formatCode' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR
    ]
);

否则,请按如下方式使用它:

$sheet = $spreadsheet->getActiveSheet();
$sheet->getStyle($thisCol)
      ->getNumberFormat()
      ->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR);

用于美元FORMAT_CURRENCY_USD

注意:您还可以添加_SIMPLE例如FORMAT_CURRENCY_EUR_SIMPLE,如果您想显示两个小数点值,例如12,62€而不是12€

签出类以找出所有可能的值。\PhpOffice\PhpSpreadsheet\Style\NumberFormat

该类存储在 vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Style\NumberFormat 中.php


推荐