私は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));
しかし、今、私は2つのデフォルト値を追加するリンケをいただきたい - も許可する必要があり、P。E. - 文字列を"逃げた"または "逃した"。 これは可能ですか?私はこの方向で何も見つけられませんでしたか? もう一つのアイデアは、隠れたシートを作成することでしたが、対応する値リストが何であるか分かりません。
ありがとうございました!
UPDATE:ティム・ウィリアムズへ
おかげで私が試した:
$objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_CUSTOM);
$objValidation->setFormula1('=OR(AND('.$currCell.$ii.'>='.$min.','.$currCell.$ii.'<='.$max.'),'.$currCell.$ii.'="canceled",'.$currCell.$ii.'="missed")');
奇妙なことは、第1のAND-式が検証されていること、であると私は分の外に別の番号を入力することはできませんよ/ max。しかし、私はまだ "キャンセル"または "逃した"と入力することはできません。この数式をOpenOfficeに挿入することで、私は正しいブール値を得ました。
PHPExcelでカスタム式を使用して検証するのは正しい方法ですか?