PHP SpreadSheet シートの保護を有効にしてセルの編集をロックする

2022年10月28日金曜日

PHP

t f B! P L

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');
スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ