Excelにはシートの保護という機能があり、特定のセルのみ編集可能し、それ以外のセルをロックすることができる。この記事では、PHPの Excel出力ライブラリである Spreadsheetでシートの保護をする方法を紹介する。
サンプルコード
さっそくコードを書いてみる。
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
//新しいスプレッドシートを作成
$book = new Spreadsheet();
$sheet = $book->getActiveSheet();
//シートの保護を有効にする(これでシート内のセルの編集がロックされる)
$sheet->getProtection()->setSheet(true);
//編集可能なセルのみロックを解除する
$sheet->getStyle('E3:E8')
->getProtection()
->setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED);
//ファイルを保存
$writer = new Xlsx($book);
$writer->save('path/to/protection.xlsx');
0 件のコメント:
コメントを投稿