最新版本,Laravel 5.4
我不知道这是一个错误,我没有做对,或者还有什么我还没有做。
我能够使用 maatwebsite 中的基本和高级方法来处理 excel 文档。
我使用的方法是
$sheet->protect() ,它是高级方法。
这种方法能够保护整个工作表,但我只需要保护一系列单元格。
我看到了一个工作表方法:
$sheet->protectCells(A1); 但这对我不起作用。 请帮助我可以用来实现这一目标的方法。 谢谢..
嗨@GreenWhiteDev
我通过以下位置的搜索检查了潜在的依赖关系:
https://github.com/PHPOffice/PHPExcel/search?utf8=%E2%9C%93&q=protectCells&type=
你会在结果中看到:
https://github.com/PHPOffice/PHPExcel/blob/1c8c2379ccf5ab9dd7cb46be965821d22173bcf4/Examples/05featuredemo.inc.php#L136 -L139
我猜这可能足以让你继续前进。
像这样的东西:
$sheet->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
$sheet->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
编辑:添加此参考:
另见
/**
* Set protection on a cell range
*
* <strong i="22">@param</strong> string $pRange Cell (e.g. A1) or cell range (e.g. A1:E1)
* <strong i="23">@param</strong> string $pPassword Password to unlock the protection
* <strong i="24">@param</strong> boolean $pAlreadyHashed If the password has already been hashed, set this to true
* <strong i="25">@throws</strong> PHPExcel_Exception
* <strong i="26">@return</strong> PHPExcel_Worksheet
*/
public function protectCells($pRange = 'A1', $pPassword = '', $pAlreadyHashed = false)
在该方法上使用三个参数!
让我知道你是怎么办的?
最后,我找到了正确的方法来做到这一点..
$objPHPExcel = 新 PHPExcel;
$objSheet = $objPHPExcel->getActiveSheet();
//保护细胞范围
$objSheet->protectCells('A1:B1', 'PHP');
// 取消保护细胞范围
$objSheet->getStyle('A2:B2')->getProtection()
->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
// 保护工作表
$objSheet->getProtection()->setSheet(true);
这是完美的工作!
来源: https :
在 Laravel 中,我使用:
// 用你的密码保护
$sheet->protect('密码');
// 取消保护单元格区域
$sheet->getStyle('F2:F1000')->getProtection()->setLocked(\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
// 保护工作表
$sheet->getProtection()->setSheet(true);
@ jorgeald77哇! 这太酷了..
我暂停了一段时间的项目。 我前几天刚开始。
那时我无法实现单元格范围的安全性。 我试过你的解决方案,效果非常好。 我非常欣赏这一点。
谢谢大家的贡献..
最有用的评论
最后,我找到了正确的方法来做到这一点..
$objPHPExcel = 新 PHPExcel;
$objSheet = $objPHPExcel->getActiveSheet();
//保护细胞范围
$objSheet->protectCells('A1:B1', 'PHP');
// 取消保护细胞范围
$objSheet->getStyle('A2:B2')->getProtection()
->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
// 保护工作表
$objSheet->getProtection()->setSheet(true);
这是完美的工作!
来源: https :
在 Laravel 中,我使用:
// 用你的密码保护
$sheet->protect('密码');
// 取消保护单元格区域
$sheet->getStyle('F2:F1000')->getProtection()->setLocked(\PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
// 保护工作表
$sheet->getProtection()->setSheet(true);