如何使用 phpspreadsheet 保护单个单元格

How to protect individual cell using phpspreadsheet

我想保护特定的单元格内容不被修改。当我尝试保护整个 sheet 时,没问题。

$sheet->getProtection()->setSheet(true)->setDeleteRows(true);

但是,无法为单个单元格设置保护。我尝试了以下代码。

1

$sheet->protectCellsByColumnAndRow(0, 1, 100, 100, 'asdf');

2

$sheet->protectCells('A1','password',false);

提前致谢。

这是解决方案。首先,启用工作表保护。然后,通过更改电子表格保护的默认样式来解锁所有单元格。之后,通过指定单元格的坐标来锁定所需的单元格。工作表保护仅适用于锁定的单元格。因此,当您打开该工作表时,无法再编辑您锁定的单元格。

$spreadsheet->getActiveSheet()->getProtection()->setSheet(true);
$spreadsheet->getDefaultStyle()->getProtection()->setLocked(false);
$sheet->getStyle('A1')->getProtection()->setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED);

link-unlock all cells and link-lock individual cell对我有帮助。