2015-11-17 2 views
0

Я написал синтаксический анализатор Excel, который использует библиотеку PHPExcel для анализа и сравнения двух файлов Excel. Он отлично работает и распечатывает различия.Проверка защиты рабочего листа

Теперь я хочу проверить, защищены ли определенные листы (только если у вас нет пароля). Я экспериментировал с:

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

, но он всегда возвращает ложь для каждого метода - как файл не защищен, даже если в исходном файле Excel, который разобранного защищен и не может быть отредактирован в MS Excel.

Как проверить, защищена ли рабочая тетрадь, используя только PHP?

+0

Является ли это только защитой рабочего листа или вы не должны проверять защиту книг? – Jeeped

+0

, даже если я проверяю защиту книг - например, Результат $ excelOb-> getSecurity() всегда является ложным ... – j99

+0

Вы можете проверить этот файл-демонстрационный файл: 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 выход будет Рабочий лист Лист1 Охраняется: ложные ..... Worksheet: Sheet2 Охраняется: ложные даже если Лист1 защищен и не может быть изменен в Excel без разблокировки – j99

ответ

0

Я знаю, что это было какое-то время, но ответ может быть полезен для кого-то с такой проблемой. У меня была такая же проблема: (getProtection метод всегда возвращал false, даже несмотря на то, что рабочие листы были защищены).

Ответ:

Удалить $objReader->setReadDataOnly(true); из вашего кода. Похоже, что он удаляет информацию о форматировании ... в том числе о статусе безопасности.

Смежные вопросы