我想找到一种方法,允许用户查看最多1000行和特定列限制的Excel工作表。这个link显示了我需要的类似例子(以及为什么)。
我开发了一个包含1000行的模板,其中包含数据验证列表(每个单元格一个),我不想让用户在结束我设置的1000个数据验证列表后手动输入数据。这样,如果PHPExcel可以设置一系列可编辑(或可见)的行和列,那就太棒了。 我试着在文档中搜索,但我找不到它的东西(也许我做了一个糟糕的研究)
答案 0 :(得分:1)
由于还不能设置行/列的可见性限制,我的解决方案是:
首先我将保护设置为工作表,然后删除了我想让用户能够编辑的单元格的保护:
$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,直到最后一列有数据。这样,用户只能输入我设置的范围内的数据。