2013-08-12 5 views
0

Я загружаю файл excel из папки на моем компьютере в папку на сервере, после загрузки загружаю загруженный файл, чтобы я мог защитить определенную ячейку, первый метод i используется ниже не работает на всехБлокировка определенных ячеек с помощью пароля phpExcel

function LockCertainCells(){ 
     $labref= $this->uri->segment(3); 
      $objReader = new PHPExcel_Reader_Excel2007(); 
      $path = "analyst_uploads/" . date('Y') . '/' . date('M') . '/'. $labref .'/'. $labref . ".xlsx"; 
      $objPHPExcel = $objReader->load($path); 
      $objPHPExcel->setActiveSheetIndexbyName('Sample Summary'); 
      $objPHPExcel->getActiveSheet()->protectCells('A17:G85','PHPExcel'); 
      $objPHPExcel ->getActiveSheet()->getProtection()->setSheet(true);       
     } 

Это второй один

function LockCertainCells(){ 
    $labref= $this->uri->segment(3); 
     $objPHPExcel = new PHPExcel; 
     $path = "analyst_uploads/" . date('Y') . '/' . date('M') . '/'. $labref .'/'. $labref . ".xlsx"; 
     $objSheet = $objPHPExcel->load($path); 
     $objSheet->setActiveSheetIndexbyName('Sample Summary'); 
     $objSheet->protectCells('A17:G85', 'PHP'); 
     $objSheet->getProtection()->setSheet(true);       

} 

Выдает мне эту ошибку:

Fatal error: Call to undefined method PHPExcel::load() in C:\127.0.0.1\htdocs\NQCL\..... 

предложения!

+0

пожалуйста var_dump ($ objPHPExcel); после вашего obj init. Проверьте, правда ли это? – ActuallyMAB

ответ

0

Класс PHPExcel не имеет метода загрузки, и именно поэтому вы получаете эту ошибку .... первым методом является метод, предоставляемый библиотекой PHPExcel для загрузки файла в объект PHPExcel, второй - не. Используйте метод, который работает (и это метод, описанный во всей документации); а не тот, который не существует.

Первый способ блокировки ячеек ничего не делает с объектом PHPExcel (например, с сохранением) после того, как вы установили защиту ячеек; поэтому, как только функция LockCertainCells прекратится, она будет недоступна и отброшена скриптом PHP. Если вы хотите внести изменения в файл, вам нужно снова сохранить файл. Я считаю, что сама MS Excel требует, чтобы вы сохранили файл, если хотите внести какие-либо изменения в этот файл.

EDIT

Вы также пропустите установки пароля для защищенных ячеек:

$objSheet->getProtection()->setPassword('mypassword'); 
Смежные вопросы