php电子表格密码保护

Posted

技术标签:

【中文标题】php电子表格密码保护【英文标题】:phpspreadsheet password protected 【发布时间】:2018-06-11 11:12:22 【问题描述】:

使用 phpspreadsheet

有没有办法用密码保护 Excel 工作表,让用户在没有密码的情况下无法阅读?

我知道您可以保护单元格或工作表不被写入,但我正在寻找一种方法来保护整个文件不被打开,一旦用户打开它,它将弹出“输入密码”屏幕

【问题讨论】:

phpspreadsheet.readthedocs.io/en/develop/topics/recipes/… 如果你碰巧知道如何使用 PHPSpreadsheet 解锁工作簿,请告诉我:) 【参考方案1】:

在电子表格上设置安全性

Excel 提供 3 级“保护”:

    文档:允许您在完整的电子表格上设置密码,只有在输入密码后才能进行更改。 工作表:提供其他安全选项:您可以禁止在特定工作表上插入行、禁止排序……

    单元格:提供锁定/解锁单元格以及显示/隐藏内部公式的选项。 设置文档安全性示例:

    $spreadsheet->getSecurity()->setLockWindows(true); $spreadsheet->getSecurity()->setLockStructure(true); $spreadsheet->getSecurity()->setWorkbookPassword("PhpSpreadsheet");

设置工作表安全性的示例:

   $spreadsheet->getActiveSheet()->getProtection()->setPassword('PhpSpreadsheet');
   $spreadsheet->getActiveSheet()->getProtection()->setSheet(true);
   $spreadsheet->getActiveSheet()->getProtection()->setSort(true);
   $spreadsheet->getActiveSheet()->getProtection()->setInsertRows(true);
   $spreadsheet->getActiveSheet()->getProtection()->setFormatCells(true);

设置单元安全的示例:

$spreadsheet->getActiveSheet()->
getStyle('B1')->
getProtection()->
setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED);

如果您需要任何工作表保护功能,请确保启用工作表保护!这可以使用以下代码完成:

$spreadsheet->getActiveSheet()->getProtection()->setSheet(true);

【讨论】:

这只会阻止编辑文档/工作表/单元格。根据问题,它不会阻止查看数据。【参考方案2】:

在 Excel 2016 上(里程可能因版本而异)

打开您的电子表格并转到:

文件 > 信息 > 保护工作簿 > 使用密码加密

并输入密码,打开时会提示用户。

【讨论】:

感谢您的回复,我根据需要使用 phpspreadsheet 编辑了我的问题,而不是在 excel 本身中

以上是关于php电子表格密码保护的主要内容,如果未能解决你的问题,请参考以下文章

使用VBA破解Excel电子表格密码

如何保护 Google 电子表格中的 Apps 脚本代码?

如何在php中隐藏/保护密码详细信息?

表格怎么解锁被保护

PHP发送忘记密码的电子邮件

保护您通过电子邮件发送的 delete.php 链接