Php 检查工作表保护

Php 检查工作表保护,php,excel,phpexcel,Php,Excel,Phpexcel,我已经编写了Excel解析器,它使用PHPExcel库来解析和比较两个Excel文件。它运行良好,并打印出差异 现在我想检查某些工作表是否受密码保护(如果没有密码,则为只读)。我在试验: $excelObj->getActiveSheet()->getProtection() $excelObj->getActiveSheet()->getProtection()->isProtectionEnabled() $excelObj->getActiveSheet

我已经编写了Excel解析器,它使用PHPExcel库来解析和比较两个Excel文件。它运行良好,并打印出差异

现在我想检查某些工作表是否受密码保护(如果没有密码,则为只读)。我在试验:

$excelObj->getActiveSheet()->getProtection()
$excelObj->getActiveSheet()->getProtection()->isProtectionEnabled()
$excelObj->getActiveSheet()->getProtection()->getPassword()
但是对于每个方法,它总是返回false,就像文件没有受到保护一样,即使解析的原始Excel文件受到保护,并且不能在MS Excel中编辑


如何检查工作表是否仅使用PHP进行写保护?

我知道这已经有一段时间了,但答案可能对有此类问题的人有所帮助。我也遇到了同样的问题(
getProtection
方法总是返回false,即使工作表受到保护)

回答:


删除
$objReader->setReadDataOnly(true)来自您的代码。似乎它删除了有关格式化的信息。。。包括关于安全状态的信息。

这只是工作表保护还是您不应该同时检查工作簿保护?即使我检查了工作簿保护-例如$excelOb->getSecurity()结果总是错误的…您可以检查这个演示excel文件:和这个PHP脚本:这个excel文件有两张表-表1受保护,表2不受保护。但是如果执行test.php,输出将是工作表:Sheet1受保护:false。。。。。工作表:Sheet2受保护:false,即使Sheet1受保护且未解锁无法在Excel中编辑