0
我正在使用PHPExcel,我想验证单元格的值。嗯,这工作得细这段代码:PHPExcel混合列验证
$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”或“错过”。 这可能吗?我没有在这个方向找到任何东西? 另一个想法是创建一个隐藏表,但我不知道对应的值列表可能是什么。
谢谢!
UPDATE:
感谢蒂姆·威廉斯我想:
$objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_CUSTOM);
$objValidation->setFormula1('=OR(AND('.$currCell.$ii.'>='.$min.','.$currCell.$ii.'<='.$max.'),'.$currCell.$ii.'="canceled",'.$currCell.$ii.'="missed")');
奇怪的是,第一和表达被验证,我不能够进入分之外另一个号码/ max。但我仍然无法输入“取消”或“错过”。通过在OpenOffice中插入这个公式,我得到了正确的布尔值。
这是在PHPExcel中使用自定义公式进行验证的正确方法吗?