由於功能需求需要讀取Excel文件,再修改其內容保存,就用到了PHPExcel類;
但是在讀取的過程中就出現了ZipArchive::locateName(): Invalid or uninitialized Zip object,這個報錯,耗時4個小時查詢了幾乎網上的所有的相關內容,基本上千篇一律就2種情況:
1.就是excel5根excel2007的區別:
excel5讀取的是.xls後綴,適用於1993年的MicrosoftOffice5.0版本的excel文件,對於現在來說已經很老了,excel2007讀取的是xlsx後綴,現在基本使用的是excel2007了;
適用於兩種後綴文件的代碼,如果是因爲這個原因報錯的話,問題是很好解決的。
if($name =='xlsx' ){
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
}else{
$objReader = PHPExcel_IOFactory::createReader('Excel5');
}
$objPHPExcel = $objReader->load($filename, $encode = 'utf-8');
2.ZipArchive類問題:
具體可以參考:http://www.nidecun.cn/index.php/archives/6/
如果是用PHPExcel,可以在PHPExcel\Reader\Excel2007.php下找到代碼:
3.我碰到的就是第三種情況了,Excel文件有問題,我們公司內的office文件經過編輯後都會被卡巴斯基加密,於是我新建了一個文件,報錯就消失了,但是如何對加密文件進行編輯,仍然頭疼中。。。