PHPSpreadsheet-条件格式-单元格上的多个条件

时间:2020-08-06 21:00:36

标签: php excel phpexcel phpspreadsheet

我正在尝试找出如何在PHPSpreadsheet的条件单元格格式中设置多个可能的条件,但似乎无法使其正常工作。

以以下表格为例:

A1 | B1 | C1
A2 | B2 | C2

如果值是A1,B1或C1,我想格式化单元格(例如,变成红色)。

我尝试添加多个条件,例如:

$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

$cells = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'];

foreach ($cells as $cell) {

    $sheet->setCellValue($cell, $cell);

    $conditional1 = new \PhpOffice\PhpSpreadsheet\Style\Conditional();
    $conditional1->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS);
    $conditional1->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_EQUAL);
    $conditional1->addCondition('A1');
    $conditional1->addCondition('B1');
    $conditional1->addCondition('C1');
    $conditional1->getStyle()->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);
    $conditional1->getStyle()->getFont()->setBold(true);

    $conditionalStyles = $spreadsheet->getActiveSheet()->getStyle('B2')->getConditionalStyles();
    $conditionalStyles[] = $conditional1;

    $spreadsheet->getActiveSheet()->getStyle($cell)->setConditionalStyles($conditionalStyles);

}

但是它只会拿到第一个条件。因此,在上面的示例中,只有单元格A1会被涂成红色,因为只有第一个规则被插入到这些单元格的excel文件中。

几个小时以来,我一直在尝试查找有关文档或示例,但似乎找不到任何文档或示例。有人可以指出我正确的方向吗?

谢谢。

0 个答案:

没有答案
相关问题