0

我正在使用 Github 库(https://github.com/PHPOffice/PHPExcel/)通过 PHP 读取和写入 excel 文件。现在,问题是我希望带有下拉列表的单元格受到保护以限制任何其他输入,这意味着当您双击下拉列表时,它不应该是可编辑或可格式化的。

4

1 回答 1

2

我不认为你真的想要只读,因为你想让用户编辑单元格的内容,但你想确保他们只从下拉框中选择一项。然后您需要的是输入验证。

您可以像这样启用输入验证:

$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 文件时,您需要检查数据的有效性。

于 2017-03-01T14:58:44.820 回答