加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用PHPExcel对受保护的单元格进行排序

发布时间:2020-12-13 22:32:20 所属栏目:PHP教程 来源:网络整理
导读:我有一个从 PHPExcel输出的spreadheeet,一切都很完美. 我保护了表格如下: $objPHPExcel- getActiveSheet() – getProtection() – setSheet(真); 哪个工作正常. 在表格中我有一个表格,其中一些列是可编辑的(表格在单元格A28:H50 – 单元格E29:H50将是可编
我有一个从 PHPExcel输出的spreadheeet,一切都很完美.

我保护了表格如下:

$objPHPExcel-> getActiveSheet() – > getProtection() – > setSheet(真);

哪个工作正常.

在表格中我有一个表格,其中一些列是可编辑的(表格在单元格A28:H50 – 单元格E29:H50将是可编辑的 – 即4列,除标题之外的所有行).
要取消保护这些单元格,我使用以下内容:

$objPHPExcel-> getActiveSheet() – >的getStyle( ‘E29:H50’) – > getProtection() – > setLocked(PHPExcel_Style_Protection :: PROTECTION_UNPROTECTED);

这很有效.

在这一点上,一切都如我所料.

我还在桌子上放了一个自动过滤器:

$objPHPExcel-> getActiveSheet() – > setAutoFilter( ‘A28:H50’);

现在,这是我遇到问题的地方.过滤器工作,但排序没有.我尝试使用标准Excel排序,并通过单击我的过滤器字段上的下拉箭头.

Excel不允许我对单元格进行保护时对数据进行排序.

题:

我有什么方法可以允许这个吗?

>如果我取消保护整个表格,它会让我排序(我甚至必须这样做
取消保护标题行以使其工作).
>我看过getProtection的setSort组件,但是
在这种情况下,无论是真还是假.
>如果不可能,那就没关系,我将不得不找到一个
另类..我只想知道答案.

解决方法

老问题,但很可能有人想知道现在的答案.

您正在寻找set sort属性.在为工作表调用保护后调用它:

$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读