我正在将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\.....
建议!
答案 0 :(得分:0)
PHPExcel类没有加载方法,这正是你得到错误的原因....第一个方法是PHPExcel库提供的用于将文件加载到PHPExcel对象的方法,第二个方法不是。使用有效的方法(并且是所有文档中描述的方法);不是那个不存在的那个。
在设置了单元格保护之后,锁定单元格的第一种方法没有对PHPExcel对象执行任何操作(例如保存它);因此,只要LockCertainCells函数终止,它就会超出范围并被PHP脚本丢弃。如果要在文件中进行更改,则需要再次保存文件。我相信MS Excel本身要求您保存文件,如果您想永久对该文件进行任何更改。
修改强>
您也错过了设置受保护单元格的密码:
$objSheet->getProtection()->setPassword('mypassword');