我正在使用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');
但是它不起作用。 有任何想法吗?还是我做错了? 预先感谢。
答案 0 :(得分:3)
我能够使用PHPSpreadsheet执行以下操作:
$spreadsheet->getActiveSheet()
->getStyle($thisCol)
->getNumberFormat()
->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
FORMAT_CURRENCY_USD_SIMPLE
==
'"$"#,##0.00_-'
的格式代码
答案 1 :(得分:1)
如果您正在使用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
中答案 2 :(得分:0)
尝试一下:
<?php
use \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);
答案 3 :(得分:0)
PHPSpreadSheet无法做到这一点。万一有人遇到同样的问题,这就是我所做的(不是适当的解决方案,但这是什么)。
我创建了一个函数来返回带有货币符号的值。
public function formatValueMoney($number){
$val = number_format($number,2,".",",");
$setVal = '$'.$val;
return $setVal;
}
$int = formatValueMoney(34567898765);
echo $int;
结果: $ 34,567,898,765.00 是结果。我刚刚将其添加到单元格中。