PHPOffice / PHPExcel

ARCHIVED
Other
11.46k stars 4.19k forks source link

PHPExcel Conditional Formatting incorrectly applies to intervening columns #841

Open pr0fess0r opened 8 years ago

pr0fess0r commented 8 years ago

Using the Excel5 Writer with the latest 1.8.x PHPExcel, this odd situation occurs: If I set conditional formatting for cells in some non-contiguous columns... it will apply to the columns in between as well.

For example:

$objConditional = new PHPExcel_Style_Conditional();
$objConditional->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_NOTEQUAL)
->addCondition('0')
->getStyle()->applyFromArray(
    array(
        'fill' => array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'color' => array('rgb' => 'FF0000')
    )
)
);

$objPHPExcel->getActiveSheet()->getStyle('D2')->setConditionalStyles(array($objConditional));
$objPHPExcel->getActiveSheet()->getStyle('E2')->setConditionalStyles(array($objConditional));
$objPHPExcel->getActiveSheet()->getStyle('H2')->setConditionalStyles(array($objConditional));
$objPHPExcel->getActiveSheet()->getStyle('I2')->setConditionalStyles(array($objConditional));

Even if I set new conditional styles for the intervening columns, i.e.

$objConditional1 = new PHPExcel_Style_Conditional();
$objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
            ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_NOTEQUAL)
            ->addCondition('0')
            ->getStyle()->applyFromArray(
                array(
                    'fill' => array(
                        'type' => PHPExcel_Style_Fill::FILL_SOLID,
                        'color' => array('rgb' => 'FFFFFF')
                    )
                )
            );
$objPHPExcel->getActiveSheet()->getStyle('F'.$j)->setConditionalStyles(array($objConditional1));
$objPHPExcel->getActiveSheet()->getStyle('G'.$j)->setConditionalStyles(array($objConditional1));

this doesn't fix the problem. Is there a way to prevent this?

Webistry commented 8 years ago

Having this problem also

pzzdvd commented 8 years ago

I've got the same problem.

si3u commented 7 years ago

I've got the same problem