我正在尝试找出如何在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文件中。
几个小时以来,我一直在尝试查找有关文档或示例,但似乎找不到任何文档或示例。有人可以指出我正确的方向吗?
谢谢。