我正在使用 PHP 自动化一个 excel 电子表格。
我一直在寻找一种在 PHPExcel 中实用地将单元格格式化为百分比的方法。
我想改变一个像
0.077922078
至
8%
有解决方案吗?
提前致谢。
我正在使用 PHP 自动化一个 excel 电子表格。
我一直在寻找一种在 PHPExcel 中实用地将单元格格式化为百分比的方法。
我想改变一个像
0.077922078
至
8%
有解决方案吗?
提前致谢。
假设您的单元格是 A1 ..
$objPHPExcel->getActiveSheet()->getStyle('A1')
->getNumberFormat()->applyFromArray(
array(
'code' => PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00
)
);
PHPExcel 库只预定义了几个基本的格式化常量。实际上,您几乎可以出于任何目的(着色、格式化小数和千位等)构建自己的。Excel 中的格式化功能非常强大。以下将使用 3 个小数位格式化百分比并将负值着色为红色:
$workSheet
->getStyleByColumnAndRow($column, $row)
->getNumberFormat()
->setFormatCode('0.000%;[Red]-0.000%');
你可以试试这段代码:
$colLetter = "A";
$rowNumber = "1";
$objPHPExcel->getActiveSheet()
->getStyle("$colLetter:$rowNumber")
->getNumberFormat()
->applyFromArray([
"code" => PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE
]);
以防万一其他人在 PHPExcel 转向 PHPSpreadsheet 后看到这个。
PHPSpreadsheet 具有应用格式代码的专用功能。因此,现在要将数字设置为百分比,我们需要替换applyFromArray()
为setFormatCode()
:
$spreadsheet
->getActiveSheet()
->getStyle("A1")
->getNumberFormat()
->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_PERCENTAGE_00);
注意:setFormatCode()
似乎不支持应用于整个列/行。因此,如果是您的情况,您将需要在列/行上创建一个循环以单独应用于每个单元格。