如何使用 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对我有帮助。
我想保护特定的单元格内容不被修改。当我尝试保护整个 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对我有帮助。