1

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

我尝试过的,

$sheet->setFreeze('A2');

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

4

2 回答 2

2

我使用setFreeze()了方法,但它也不适用于我的情况。

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

  1. 保护整张纸。
  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 列将受到保护,因此请删除从 B 列到最后一列的保护。

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

希望你能理解。

于 2017-08-18T09:44:29.157 回答
0

孔板保护

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

移除工作区保护

$sheet->getStyle('B4:F100')->getProtection()->setLocked(\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
于 2017-10-16T16:27:03.323 回答