我有细胞保护方面的问题。
我只想保护一列,例如 B。
所以我尝试了:
$sheet->getProtection()->setSheet(true);
$highestRow = $sheet->getHighestRow();
$sheet->getStyle('A1:J2000)->getProtection()->setLocked( PHPExcel_Style_Protection::PROTECTION_UNPROTECTED );
for($i=1;$i<=$highestRow;$i++)
{
$sheet->getStyleByColumnAndRow(1,$i)->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_PROTECTED);
}
但这真的很慢,而且不好,因为如果我需要再次打开我的工作表
$highestRow = $sheet->getHighestRow();
会返回“J”。
另一种解决方案是获取最后一个非空列,您知道该怎么做吗?因为getHighestRow(Column)
返回未受保护的列或为空的列。