phpexcel数据验证数字字符



我在此页面上尝试了代码(无效值的Codeplex phpexcel验证问题),以验证数字字符的输入。我还搜索了phpexcel开发人员文档,并出现了类似的代码。但是,当我使用代码应用它并测试它时,单元格不接受数字字符。.您可能建议仅针对数字字符过滤或验证数据输入的其他方法。

以下代码来自phpexcel开发人员文档:

$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')
->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 numbers between 10 and 20 are allowed.');
$objValidation->setFormula1(10);
$objValidation->setFormula2(20);

我遇到了同样的问题,最终由试验确定&错误的是,由于将单元格式设置为文本而不是导致问题的数字。添加

$objPHPExcel->getActiveSheet()->getStyle('B3')->getNumberFormat()->setFormatCode('#');

在您的$ objvalidation之前,就可以解决问题。当然,您需要将格式设置为适用于您的情况。在这种情况下,我只需要一个整数。

您的代码只需要设置要执行的操作即可。也不要忘记使用Excel2007创建作者,而不是使用Excel5。

类似的东西:

$objValidation = $phpexcel->getActiveSheet()->getCell('B3')
->getDataValidation();
$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_DECIMAL ); //'or whole'
//This Line 
$objValidation->setOperator(PHPExcel_Cell_DataValidation::OPERATOR_BETWEEN);
$objValidation->setAllowBlank(true);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP ); //'stop'
$objValidation->setErrorTitle('Ingrese solo números');
$objValidation->setError('Ingrese solo números');
$objValidation->setPromptTitle('Ingrese solo números');
$objValidation->setPrompt('Ingrese solo números');
$objValidation->setFormula1(0);
$objValidation->setFormula2(999999);
$objValidation->setAllowBlank(true);
$phpexcel->getActiveSheet()->getStyle('B3')->getNumberFormat()->setFormatCode('#');

最新更新