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



我正在使用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');

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

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

$spreadsheet->getActiveSheet()
->getStyle($thisCol)
->getNumberFormat()
->setFormatCode(PhpOfficePhpSpreadsheetStyleNumberFormat::FORMAT_CURRENCY_USD_SIMPLE);

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

如果您正在使用 applyFromArray,则可以使用它:

$sheet = $spreadsheet->getActiveSheet();
$sheet->getStyle($thisCol)->applyFromArray(
'numberFormat' => [
'formatCode' => PhpOfficePhpSpreadsheetStyleNumberFormat::FORMAT_CURRENCY_EUR
]
);

否则像这样使用它:

$sheet = $spreadsheet->getActiveSheet();
$sheet->getStyle($thisCol)
->getNumberFormat()
->setFormatCode(PhpOfficePhpSpreadsheetStyleNumberFormat::FORMAT_CURRENCY_EUR);

使用FORMAT_CURRENCY_USD兑换美元

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

查看类PhpOfficePhpSpreadsheetStyleNumberFormat以找出所有可能的值。

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

试试这个:

<?php
use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetCellDataType;
$xls   = new Spreadsheet();
$sheet = $xls->getActiveSheet();
$sheet->getStyle('D4')->getNumberFormat()->setFormatCode('###,###,###.##');
$sheet->setCellValueExplicit('D4', $your_value, DataType::TYPE_NUMERIC);

我不能用PHPSpreadSheet做到这一点。如果有人遇到同样的问题,这就是我所做的(不是一个正确的解决方案,但它是一些东西(。

我创建了一个函数来返回带有货币符号的值。

public function formatValueMoney($number){
$val = number_format($number,2,".",",");
$setVal = '$'.$val;
return $setVal;
}
$int = formatValueMoney(34567898765);
echo $int;

这个:$34,567,898,765.00 是结果。 我刚刚在单元格中添加了这个。

最新更新