使用PHPExcel对受保护的单元格进行排序
问题描述:
我有一个从PHPExcel输出的字符串,并且所有内容都完美显示。使用PHPExcel对受保护的单元格进行排序
我保护了表如下:
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
工作正常。我有一个表格,其中一些列是可编辑的(表格在单元格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组件,但是 在这种情况下不是真或假。
- 如果这是不可能的,那将是好的,我将不得不找到一个 替代方案..我只想知道答案。
答
老问题,但很可能有人会想知道现在的答案。
您正在寻找设置排序属性。在您呼叫保护单后请拨打它:
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
如问题中所述,setSort在这种情况下不起作用。 –