我正在尝试创建一个“可编辑的区域”的电子表格(B3:L99在下面的代码中),并有保护工作,只是一切正常。为了突出显示可以编辑的内容,我设置了一些颜色、边框等,并且我希望在将数据粘贴到允许编辑的单元格中时保护格式不被删除。
简而言之,当从不同的电子表格粘贴数据时,如何保留格式?

    $objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel');
    $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
    $objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
    $objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
    // this did not work
    // $objPHPExcel->getActiveSheet()->getProtection()->setFormatColumns(true);
    $objPHPExcel->getActiveSheet()->getProtection()->setFormatRows(true);
    $objPHPExcel->getActiveSheet()->getProtection()->setInsertColumns(true);
    $objPHPExcel->getActiveSheet()->getProtection()->setDeleteColumns(true);
    $objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
    $objPHPExcel->getActiveSheet()->getProtection()->setDeleteRows(true);
    $objPHPExcel->getActiveSheet()
    ->getStyle("B3:L99")
    ->getProtection()
    ->setLocked(
        PHPExcel_Style_Protection::PROTECTION_UNPROTECTED
    );

最佳答案

您可以使用setPassword()设置工作表的密码:

$worksheet->getProtection()->setPassword("the chosen password");

09-30 16:20