我被要求编辑一个使用已弃用的PHPExcel库的文件。我不允许更新到PHPSpreadSheet所以我需要使用PHPExcel对其进行排序。 我正在尝试使用以下代码显示货币符号:
$activeSheet->getStyle($col.$row)
->getNumberFormat()
->setFormatCode('_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)');
我还尝试使用格式代码€ ####0,00
和€ ##,##0.00
但没有运气..
当我打开文件时发生奇怪的行为,我点击单元格并点击返回键而不做任何更改,然后正确显示货币符号。如何在没有任何人工干预的情况下使其工作?
由于
答案 0 :(得分:0)
根据this PHPExcel example,您可以使用预定义的常量:
$spreadsheet->getActiveSheet()
->getStyle('E4:E13')
->getNumberFormat()
->setFormatCode(NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
$spreadsheet->getActiveSheet()
->getStyle('E4:E13')
->getNumberFormat()
->setFormatCode(NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
这些常量在PHPExcel_Style_NumberFormat:
中定义const FORMAT_CURRENCY_USD_SIMPLE = '"$"#,##0.00_-';
const FORMAT_CURRENCY_USD = '$#,##0_-';
const FORMAT_CURRENCY_EUR_SIMPLE = '[$EUR ]#,##0.00_-';
或者您可以定义自己的,但请注意,这些必须符合Excel单元格格式。
将单元格值提供为一个简单的浮点数,然后没有货币符号或千位分隔符。
答案 1 :(得分:0)
我解决了这个问题。问题是由小数和千位分隔符给出的,它们与使用的格式代码不匹配。
$price = number_format( $raw_price, 2, ".", "");
$activeSheet->setCellValue("G$row", $price)
$activeSheet->getStyle("G$row")->getNumberFormat()->setFormatCode( '"€" ###0,00_-' );
我只需编辑如下:
$price = number_format( $raw_price, 2, ",", "");