Я пытаюсь понять, как установить несколько возможных условий в условном форматировании ячеек 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 для этих ячеек.
Я пытался найти документацию или примеры по этому поводу для пары часов и не могу найти ни одного. Может кто-нибудь указать мне правильное направление, пожалуйста?
Спасибо.