我们可以使用PHPExcel设置可编辑的Excel行和列的限制吗?

时间:2012-08-22 10:15:20

标签: php phpexcel

我想找到一种方法,允许用户查看最多1000行和特定列限制的Excel工作表。这个link显示了我需要的类似例子(以及为什么)。

我开发了一个包含1000行的模板,其中包含数据验证列表(每个单元格一个),我不想让用户在结束我设置的1000个数据验证列表后手动输入数据。这样,如果PHPExcel可以设置一系列可编辑(或可见)的行和列,那就太棒了。 我试着在文档中搜索,但我找不到它的东西(也许我做了一个糟糕的研究)

1 个答案:

答案 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,直到最后一列有数据。这样,用户只能输入我设置的范围内的数据。