PHPExcel 根据单元格值设置字体/背景颜色

标签 php phpexcel

我有一个基于

的表拉值
if ($slaHours >= 0 & $slaHours <= 72) 

我想做的是在值小于 12 时设置这些值的颜色。我仍然想显示大于 12 且小于 72 的值,所以我试过的代码是

$styleArray = array(
'font'  => array(
    'bold'  => true,
    'color' => array('rgb' => 'FF0000'),
));

if ($slaHours >= 0 & $slaHours <= 72)
    $slaHours = $objWorksheet->getCellByColumnAndRow(3, $row)->getValue();
    if($slaHours <=12) {    
        $slaHours = $objWorksheet->getCellByColumnAndRow(3, $row)->getValue()->applyFromArray($styleArray); 

但是,我遇到了一个 fatal error

"Call to a member function applyFromArray() on a non-object "

对于这个 PHP 东西来说是很新的东西,所以非常感谢任何有助于实现这个工作的帮助。

谢谢

最佳答案

applyFromArray() 是 PHPExcel_Cell 对象的方法,而不是单元格值的方法(这是一个简单的 PHP 数据类型,除非单元格包含富文本)...所以你需要调用它对抗细胞

$objWorksheet->getCellByColumnAndRow(3, $row)->applyFromArray;

但是如果您需要基于单元格值的样式,那么您应该使用条件样式。有关详细信息,请参阅开发人员文档的第 4.6.23 节(“条件格式化单元格”),并查看示例中的 08conditionalformatting.php

编辑

$objConditionalStyle = new PHPExcel_Style_Conditional();
$objConditionalStyle->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
    ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN)
    ->addCondition('12');
$objConditionalStyle->getStyle()->getFont()->getColor()->setRGB('FF0000');
$objConditionalStyle->getStyle()->getFont()->setBold(true);

$conditionalStyles = $objWorksheet->getStyle('A3')
    ->getConditionalStyles();
array_push($conditionalStyles, $objConditionalStyle);
$objPHPExcel->getActiveSheet()->getStyle('A3')
    ->setConditionalStyles($conditionalStyles);

关于PHPExcel 根据单元格值设置字体/背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145550/

相关文章:

PHP header 和 Access-Control_Allow_Origin 错误

php - Apache Solr 搜索自动完成

php - 使用 php excel 将 Logo 添加到 excel 工作表

php - 防止通过 PHP 重复上传图片

php - 拥有 +100 个用户的 Symfony2 网站 = 100% CPU 费用

javascript - 即使刷新后也保留文本框值

PHPExcel 很慢 - 改进方法?

php - 如何在 PHPExcel 库中使用打印就绪功能

php - 使用 PHPExcel 和 AJAX 制作 Excel 文件

PHPEXCEL 为所有工作表设置标题