我正在使用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 是结果。 我刚刚在单元格中添加了这个。