PHPExcel无法显示货币符号

时间:2018-05-29 13:41:17

标签: php phpexcel string-formatting

我被要求编辑一个使用已弃用的PHPExcel库的文件。我不允许更新到PHPSpreadSheet所以我需要使用PHPExcel对其进行排序。 我正在尝试使用以下代码显示货币符号:

$activeSheet->getStyle($col.$row)
            ->getNumberFormat()
            ->setFormatCode('_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)');

我还尝试使用格式代码€ ####0,00€ ##,##0.00但没有运气..

当我打开文件时发生奇怪的行为,我点击单元格并点击返回键而不做任何更改,然后正确显示货币符号。如何在没有任何人工干预的情况下使其工作?

由于

2 个答案:

答案 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, ",", "");