我想找到一种方法让用户查看最大 1000 行和特定列限制的 Excel 表。此链接显示了我需要(以及为什么)的类似示例。
我开发了一个包含 1000 行数据验证列表(每个单元格一个)的模板,我不想让用户在结束我设置的 1000 个数据验证列表后尝试手动输入数据。这样,如果 PHPExcel 可以设置一系列可编辑(或可见)的行和列,那就太好了。我试图在文档中搜索,但我找不到它的东西(也许我做了不好的研究)
由于尚无法为行/列设置可见性限制,因此我的解决方案是:
首先我为工作表设置了保护,然后我删除了我想让用户能够编辑的单元格的保护:
$latestTemplateColumn = $objPHPExcel->getActiveSheet()->getHighestDataColumn();
$latestTemplateColumn++;
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$column = 'A';
for ($row = 3; $row <= $maxRows; $row++) {
for ($column = 'A'; $column != $latestTemplateColumn; $column++) {
$cell = $objPHPExcel->getActiveSheet()->getCell($column.$row);
$objPHPExcel->getActiveSheet()->getStyle($column.$row)->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
}
}
此代码从第 3 行开始,直到我设置的 $maxRow,并且直到最后一列有数据。这样用户只能在我设置的范围内输入数据。