2015-11-17 121 views
0

我已經編寫了Excel解析器,它使用PHPExcel庫來解析和比較兩個Excel文件。它工作正常,並打印出差異。檢查工作表保護

現在我想檢查某些工作表是否受密碼保護(只讀,如果您沒有密碼)。我是用實驗:

$excelObj->getActiveSheet()->getProtection() 
$excelObj->getActiveSheet()->getProtection()->isProtectionEnabled() 
$excelObj->getActiveSheet()->getProtection()->getPassword() 

,但它始終返回false每一個方法 - 樣,即使是被解析的保護,不能在MS Excel中編輯原始Excel文件的文件不受保護。

如何檢查工作表是否僅使用PHP進行寫保護?

+0

它只是工作表保護,還是不應該檢查工作簿保護?即使我檢查工作簿保護 - 例如 – Jeeped

+0

$ excelOb-> getSecurity()結果始終爲false ... – j99

+0

您可以查看此演示excel文件:https://dl.dropboxusercontent.com/u/22695749/phpexcel/test-protection.xls和此PHP腳本: https://dl.dropboxusercontent.com/u/22695749/phpexcel/test.php 該excel文件有兩張紙 - 第1張紙張受保護,第2張紙張不受保護。但是,如果你執行test.php的輸出將是 工作表:工作表Sheet1 保護:虛假 ..... 工作表:Sheet2中 保護:虛假 即使Sheet1中受到保護,不能被編輯Excel無需解鎖 – j99

回答

0

我知道這已經有一段時間了,但答案可能對有此類問題的人有所幫助。我有一個相同的問題(getProtection方法總是返回false即使工作表受到保護)。

答:從你的代碼

刪除$objReader->setReadDataOnly(true);。它似乎刪除了關於格式化的信息......包括安全狀態。