0

我正在将一个excel文件从我计算机中的文件夹上传到服务器中的文件夹,上传后我正在加载上传的文件以便我可以保护某些单元格,我在下面使用的第一种方法根本不起作用

  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\.....

建议!

4

1 回答 1

0

PHPExcel 类没有加载方法,这正是您收到该错误的原因......第一种方法是 PHPExcel 库提供的用于将文件加载到 PHPExcel 对象中的方法,第二种方法不是。使用有效的方法(并且是所有文档中描述的方法);不是那个不存在的。

设置单元格保护后,第一种锁定单元格的方法是不对 PHPExcel 对象进行任何操作(例如保存它);因此,一旦 LockCertainCells 函数终止,它将超出范围并被 PHP 脚本丢弃。如果要对文件进行更改,则需要再次保存文件。我相信如果您想永久更改该文件,MS Excel 本身会要求您保存文件。

编辑

您还错过了为受保护单元格设置密码:

$objSheet->getProtection()->setPassword('mypassword');
于 2013-08-12T10:53:14.717 回答