3

スプレッドシートの「編集可能領域」(以下のコードの 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
    );
4

1 に答える 1