我正在使用PHP自动化Excel电子表格。
我一直在寻找一种在PHPExcel中以编程方式将单元格格式化为百分比的方法。
我想将值更改为
0.077922078
变成
8%
是否有解决方法?
提前感谢。
我正在使用PHP自动化Excel电子表格。
我一直在寻找一种在PHPExcel中以编程方式将单元格格式化为百分比的方法。
我想将值更改为
0.077922078
变成
8%
是否有解决方法?
提前感谢。
$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()
不支持应用于整个列/行。因此,如果您的情况是这样的,您需要创建一个循环来逐个应用于每个单元格。