phpexcel如何批量设置数据验证

phpexcel设置数据验证的方法是这样

$objValidation = $excel->getSheet(0)->getCell('A1')->getDataValidation();
$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );//数据验证的类型,这是列表
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );//输错了的话显示的提示属于哪个级别
$objValidation->setAllowBlank(false);//允许本格为空,false是不允许
$objValidation->setShowInputMessage(true);//选中时显示输入提示
$objValidation->setShowErrorMessage(true);//数据错误时显示错误提示
$objValidation->setShowDropDown(true);//显示下拉箭头
$objValidation->setErrorTitle('输入错误');
$objValidation->setError('输入错误');
$objValidation->setPrompt('请从下拉列表里选择');
$objValidation->setFormula1('"选项1,选项2"');

但是这样一次只能把一个单元格设置成数据验证,如果想把一整列都设置成一样的数据验证,该怎么办?不会是要循环吧?


尝试过把第一行getCell的参数改成'A$1',不行

阅读 6.2k
1 个回答

感觉你已经用不到了,但是考虑到别人可能会跟我一样搜到这- -就把我的解决方案说一下
如果需要查看原文(不太好找,自己搜索下)-->点击查看原文

$sht = $objPHPExcel->getActiveSheet();
$objValidation = $sht->getDataValidation();
$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
$objValidation->setAllowBlank(false);
$objValidation->setShowDropDown(true);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setErrorTitle("输入的值有误");
$objValidation->setError("您输入的值不在下拉框列表内");
$objValidation->setPromptTitle('设备类型');
$objValidation->setFormula1('"列表项1,列表项2,列表项3"');
$sht->setDataValidation('$A:$A', $objValidation); 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏