使用PHPExcel对受保护的单元格进行排序
我有一个从PHPExcel输出的spreadsheet,所有东西都显示得非常完美使用PHPExcel对受保护的单元格进行排序,php,sorting,phpexcel,protection,Php,Sorting,Phpexcel,Protection,我有一个从PHPExcel输出的spreadsheet,所有东西都显示得非常完美 $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); $objPHPExcel->getActiveSheet()->getProtection()->setSort(true); 我已按如下方式保护该表: $objPHPExcel->getActiveSheet()->getProtect
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
我已按如下方式保护该表:
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true)代码>
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
这很好用
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
在工作表中,我有一个表格,其中一些列是可编辑的(表格位于单元格A28:H50中-单元格E29:H50将是可编辑的-即4列,除标题外的所有行)。
要取消对这些单元格的保护,我使用以下方法:
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getStyle('E29:H50')->getProtection()->setLocked(PHPExcel\u Style\u Protection::Protection\u UNPROTECTED)代码>
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
这是有效的
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
在这一点上,一切都是我所期望的
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
我还在桌上放了一个自动过滤器:
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->setAutoFilter('A28:H50')代码>
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
这就是我的问题所在。过滤器可以工作,但排序不能。我尝试使用标准Excel排序,并通过单击筛选字段上的下拉箭头
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
Excel不允许我对数据进行排序,因为单元格受到保护
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
问题:
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
我有什么办法可以允许这样做吗
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
- 如果我取消对整个表的保护,它将允许我进行排序(我甚至不得不这样做)
取消对标题行的保护以使其正常工作)
- 我已经看过getProtection的setSort组件,但是
在这种情况下,正确或错误都不起作用
- 如果不可能的话,那没关系,我得找一个
可供替代的我宁愿知道答案
这是一个老问题,但现在可能有人想知道答案
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
您正在查找集合排序属性。调用工作表保护后再调用它:
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
如问题所述,setSort在这种情况下不起作用。