如果我使用:
$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
$objValidation->setAllowBlank(false);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setShowDropDown(true);
$objValidation->setErrorTitle('Input error');
$objValidation->setError('Value is not in list.');
$objValidation->setPromptTitle('Pick from list');
$objValidation->setPrompt('Please pick a value from the drop-down list.');
$objValidation->setFormula1('"male,female"');
创建 Excel 文件时,我在 Windows Excel 上收到以下错误
1. We found a problem with some content in 'filename.xlsx'. Do you want to recover....
2. Removed Feature: Data validation from /xl/worksheets/shee1.xml part
如果我注释掉该代码,它将正常打开。
在 Ubuntu Libre Office 上按预期工作。
最佳答案
这一切都在PHPExcel documentation中进行了解释。
如果您查看15datavalidation.php
等示例,它演示了如何创建列表类型数据验证
$objValidation = $objPHPExcel->getActiveSheet()
->getCell('B5')
->getDataValidation();
$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
...
$objValidation->setFormula1('"Item A,Item B,Item C"');
展示如何创建固定值列表
$objValidation = $objPHPExcel->getActiveSheet()
->getCell('B7')
->getDataValidation();
$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
...
$objValidation->setFormula1('$D$2:$D$6');
展示如何使用公式创建列表
示例39dropdown.php
甚至展示了如何创建链接列表,其中一个列表中的值依赖于另一个列表中的选定值
关于PHPExcel 损坏的文件下拉列表不起作用 Windows Excel 数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37622931/