首页 > 解决方案 > PHPExcel无法显示货币符号

问题描述

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

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

我也尝试了格式代码€ ####0,00€ ##,##0.00但没有运气..

当我打开文件时会发生奇怪的行为,我单击单元格并按回车键而不进行任何更改,然后正确显示货币符号。我怎样才能在没有任何人工干预的情况下让它工作?

谢谢

标签: phpphpexcelstring-formatting

解决方案


根据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 单元格格式。

然后将单元格值提供为简单的浮点数,没有货币符号或千位分隔符。


推荐阅读