PHPExcel 无法显示货币符号
PHPExcel can't show currency symbol
我被要求编辑一个使用已弃用的 PHPExcel 库的文件。我不允许更新到 PHPSpreadSheet,所以我需要使用 PHPExcel 解决这个问题。
我正在尝试使用以下代码显示货币符号:
$activeSheet->getStyle($col.$row)
->getNumberFormat()
->setFormatCode('_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)');
我也试过格式代码 € ####0,00
和 € ##,##0.00
但没有成功..
当我打开文件时出现奇怪的行为,我单击单元格并按 return 键而不做任何更改,然后货币符号正确显示。我怎样才能在没有任何人工干预的情况下让它工作?
谢谢
根据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 单元格格式。
然后将单元格值作为简单的浮点数提供,没有货币符号或千位分隔符。
我解决了这个问题。问题是由小数点和千位分隔符引起的,它们与使用的格式代码不匹配。
$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, ",", "");
我被要求编辑一个使用已弃用的 PHPExcel 库的文件。我不允许更新到 PHPSpreadSheet,所以我需要使用 PHPExcel 解决这个问题。 我正在尝试使用以下代码显示货币符号:
$activeSheet->getStyle($col.$row)
->getNumberFormat()
->setFormatCode('_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)');
我也试过格式代码 € ####0,00
和 € ##,##0.00
但没有成功..
当我打开文件时出现奇怪的行为,我单击单元格并按 return 键而不做任何更改,然后货币符号正确显示。我怎样才能在没有任何人工干预的情况下让它工作?
谢谢
根据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 单元格格式。
然后将单元格值作为简单的浮点数提供,没有货币符号或千位分隔符。
我解决了这个问题。问题是由小数点和千位分隔符引起的,它们与使用的格式代码不匹配。
$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, ",", "");