如何在 PhpSpreadSheet 中设置货币格式?
How to set money format in PhpSpreadSheet?
我正在使用 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');
但是没用。
有任何想法吗?还是我做错了?
提前致谢。
试试这个:
<?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);
我无法使用 PHPSpreadSheet 完成此操作。如果有人遇到同样的问题,这就是我所做的(不是一个合适的解决方案,但它是某种东西)。
我创建了一个函数来 return 带有货币符号的值。
public function formatValueMoney($number){
$val = number_format($number,2,".",",");
$setVal = '$'.$val;
return $setVal;
}
$int = formatValueMoney(34567898765);
echo $int;
结果是:$34,567,898,765.00。我刚刚在单元格中添加了这个。
我能够使用 PHPSpreadsheet 执行以下操作:
$spreadsheet->getActiveSheet()
->getStyle($thisCol)
->getNumberFormat()
->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
格式代码为FORMAT_CURRENCY_USD_SIMPLE
==
'"$"#,##0.00_-'
如果你正在使用 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
换取美元
Note: You can also add _SIMPLE e.g. FORMAT_CURRENCY_EUR_SIMPLE if you like to show two decimal point values e.g. 12,62 € instead of 12 €
检查 class \PhpOffice\PhpSpreadsheet\Style\NumberFormat
以找出所有可能的值。
class存储在vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Style\NumberFormat.php
我正在使用 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');
但是没用。 有任何想法吗?还是我做错了? 提前致谢。
试试这个:
<?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);
我无法使用 PHPSpreadSheet 完成此操作。如果有人遇到同样的问题,这就是我所做的(不是一个合适的解决方案,但它是某种东西)。
我创建了一个函数来 return 带有货币符号的值。
public function formatValueMoney($number){
$val = number_format($number,2,".",",");
$setVal = '$'.$val;
return $setVal;
}
$int = formatValueMoney(34567898765);
echo $int;
结果是:$34,567,898,765.00。我刚刚在单元格中添加了这个。
我能够使用 PHPSpreadsheet 执行以下操作:
$spreadsheet->getActiveSheet()
->getStyle($thisCol)
->getNumberFormat()
->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
格式代码为FORMAT_CURRENCY_USD_SIMPLE
==
'"$"#,##0.00_-'
如果你正在使用 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
换取美元
Note: You can also add _SIMPLE e.g. FORMAT_CURRENCY_EUR_SIMPLE if you like to show two decimal point values e.g. 12,62 € instead of 12 €
检查 class \PhpOffice\PhpSpreadsheet\Style\NumberFormat
以找出所有可能的值。
class存储在vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Style\NumberFormat.php