Я использую PHPExcel, и я хотел бы проверить значения ячеек. Ну это работает довольно отлично этот код:PHPExcel mixed Column Validation
$objValidation = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow($tdCount-1,$ii)->getDataValidation();
$objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_WHOLE);
$objValidation->setErrorStyle(PHPExcel_Cell_DataValidation::STYLE_STOP);
$objValidation->setAllowBlank(true);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setErrorTitle('Input error');
$objValidation->setError('Only integers between '.$min.' and '.$max.' allowed');
$objValidation->setPromptTitle('Permitted Input:');
$objValidation->setPrompt('Only integers between '.$min.' and '.$max.' allowed');
$objValidation->setFormula1(intval($min));
$objValidation->setFormula2(intval($max));
Но сейчас я бы Линк добавить два значения по умолчанию - строки - которые также должны быть разрешены, Р.Е. «cancled» или «missed». Возможно ли это? Я ничего не нашел в этом направлении? Другая идея заключалась в том, чтобы создать скрытый лист, но я не знаю, какой может быть соответствующий список значений.
Спасибо!
UPDATE:
Благодаря Тим Уильямс я попробовал:
$objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_CUSTOM);
$objValidation->setFormula1('=OR(AND('.$currCell.$ii.'>='.$min.','.$currCell.$ii.'<='.$max.'),'.$currCell.$ii.'="canceled",'.$currCell.$ii.'="missed")');
Странная вещь, что первое и выражение проверяется и я не в состоянии ввести другой номер за пределами мин/Макс. Но я все еще не могу ввести «отмененный» или «пропущенный». Вставив эту формулу в OpenOffice, я получил правильные логические значения.
Правильный способ использования пользовательских формул в PHPExcel для проверки?