如何使用PHPExcel库禁用几个单元格,但保持其余单元格可编辑?我尝试使用以下几种组合:
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
$objPHPExcel->getActiveSheet()
->getStyle('A1:Z50')
->getProtection()->setLocked(
\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED
);
$objPHPExcel->getActiveSheet()
->getStyle('C7:E7')
->getProtection()->setLocked(
\PHPExcel_Style_Protection::PROTECTION_PROTECTED
);
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(false);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(false);
但我所能获得的只是禁用或启用了所有文档。我很确定这可以轻松实现。提前致谢。
保护整个工作表,同时保持特定单元格可编辑的解决方案:
$excel->getActiveSheet()->getProtection()->setSheet(true);
$excel->getActiveSheet()->getStyle('A12:D50')->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
完整的例子。在生成的文件中,我只能编辑单元格B2,C2和D2:
$excel = new PHPExcel();
$excel->setActiveSheetIndex(0)
->setCellValue('A1', 'Hello')
->setCellValue('B2', 'world!')
->setCellValue('C1', 'Hello')
->setCellValue('D2', 'world!')
;
$excel->getActiveSheet()
->getProtection()->setSheet(true);
$excel->getActiveSheet()->getStyle('B2:D2')
->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$writer->save(str_replace('.php', '.xls', __FILE__));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句