2014-01-28 2 views
0

Я пробовал код на этой странице (codeplex phpexcel validation issue for invalid values), чтобы проверить ввод числовых символов. Я также искал документацию разработчика 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); 

ответ

0

У меня был тот же самый вопрос и, наконец, определяется методом проб & ошибок, что это было связано с форматом ячейки, установленным на текст, а не номер что вызывало проблему. Добавление

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

непосредственно перед вашим $ objValidation решит проблему. Конечно, вам нужно будет установить формат того, что когда-либо было применимо к вашей ситуации. В этом случае мне просто нужно целое число.

0

Ваш код должен только выполнить операцию для выполнения; Также не забудьте создать Writer с 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('#'); 
Смежные вопросы