是否有使用 Maatwebsite/Laravel-Excel 锁定列不被修改的功能?

Is there a function to lock column from being modified using Maatwebsite/Laravel-Excel?

我想锁定某列以防止用户编辑该列的数据。 Maatwebsite/Laravel-Excel是否提供此功能?

我试过的,

$sheet->setFreeze('A2');

但是,它不起作用。是我的方法错了吗?

我使用了 setFreeze() 方法,但它对我的情况也不起作用。

我以不同的方式思考这个问题,这里是方式,

  1. 保护整个sheet。
  2. 现在取消对需要可写权限的区域的保护。即 除了 A

这是代码。

$sheet->loadView('template');
$sheet->getProtection()->setPassword('password');
$sheet->getProtection()->setSheet(true);

现在取消对区域的保护,

$sheet->getStyle('B1:D100')->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);

A 列已经受到保护,因为整个 sheet 都受到保护,因此从 B 列到最后一列取消保护。

在这种情况下,从B1到D100的矩形区域将是可编辑的。您可以根据您的要求进行定制。

希望你明白。

洞Sheet保护

$sheet->loadView('template');
$sheet->getProtection()->setPassword('password');
$sheet->getProtection()->setSheet(true);

移除工作区保护

$sheet->getStyle('B4:F100')->getProtection()->setLocked(\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);