0
我使用Github库(https://github.com/PHPOffice/PHPExcel/)进行excel文件的读取和写入。 现在,问题是我希望单元格的下拉菜单受到保护,以限制任何其他输入,这意味着当您双击下拉菜单时,它不应该是可编辑或可格式化的。如何通过PHP将只读权限分配给excel中的单元格?
我使用Github库(https://github.com/PHPOffice/PHPExcel/)进行excel文件的读取和写入。 现在,问题是我希望单元格的下拉菜单受到保护,以限制任何其他输入,这意味着当您双击下拉菜单时,它不应该是可编辑或可格式化的。如何通过PHP将只读权限分配给excel中的单元格?
我不认为你真的想要只读,因为你想让用户编辑单元格的内容,但是你想确保他们只从下拉框中选择一项。你需要的是输入验证。
您可以启用输入验证这样的:
$objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation();
$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('"Item A,Item B,Item C"');
$objPHPExcel->getActiveSheet()->getCell('B5')->setDataValidation($objValidation);
来源:https://docs.typo3.org/typo3cms/extensions/phpexcel_library/1.7.4/manual.html#_Toc237519927
请注意,输入验证只是一个噱头,以帮助用户输入正确的数据。您不能在稍后时刻假定Excel电子表格中的数据与验证一致。因此,在重新上传Excel文件时,您需要检查数据的有效性。