PHPExcel验证一系列单元格的数据

PHPExcel验证一系列单元格的数据,php,validation,syntax,phpexcel,Php,Validation,Syntax,Phpexcel,我正在尝试验证中一系列单元格的数据。验证单个单元格有效 $objValidation = $objPHPExcel->getActiveSheet()->getCell('A1')->getDataValidation(); $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE ); $objValidation->setErrorStyle( PHPExcel_Cell_DataVali

我正在尝试验证中一系列单元格的数据。验证单个单元格有效

$objValidation = $objPHPExcel->getActiveSheet()->getCell('A1')->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('Number is not allowed!');
$objValidation->setPromptTitle('Allowed input');
$objValidation->setPrompt('Only 1 and 0 are allowed.');
$objValidation->setFormula1(0);
$objValidation->setFormula2(1);
我可以通过创建这样的克隆来验证其他细胞

$objPHPExcel->getActiveSheet()->getCell("A2")->setDataValidation(clone $objValidation);
但如果我试图通过循环验证数据,它就会冻结

$j = 2;
while($j <= 10)
{
    $objPHPExcel->getActiveSheet()->getCell("A$j")->setDataValidation(clone $objValidation);    
}
$j=2;
而($j getActiveSheet()->getCell(“A$j”)->setDataValidation(克隆$objValidation);
}
我做错了什么


p.S.循环与其他函数一起工作,如
getStyle()
等。

在您的示例中,您从未递增变量
$j

请尝试使用foreach:

foreach($j=2; $j<=10; $j++) {
  //do your stuff
}

foreach($j=2;$j您可以创建一个数据验证对象并将其分配给一个范围-比使用循环更简单

//-- Duration: 1 to 12 on range H2:H100
$xl = new PHPExcel();
$sht = $xl->getActiveSheet();
$oVal = $sht->getDataValidation();
$oVal->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE );
$oVal->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP );
$oVal->setAllowBlank(false);
$oVal->setShowInputMessage(false);
$oVal->setShowErrorMessage(true);
$oVal->setErrorTitle("Erreur d'encodage");
$oVal->setError("La durée doit être entre 1 et 12 heures !");
$oVal->setPromptTitle('Validation de données');
$oVal->setPrompt('Uniquement de 1 à 12 heures sont autorisées.');
$oVal->setFormula1(1);
$oVal->setFormula2(12);
$sht->setDataValidation("H2:H100", $oVal);

忘记添加
$j++
。愚蠢的错误。