php使用office modi吗,使用phpoffice/phpexcel拓展读取excel内容卡死解决
今天一個線上項目反應導入excel文件時,網頁直接卡死,導入excel文件時失敗,經過一步一步的驗證發現是在讀取excel文件時卡死,此項目使用的是phpoffice/phpexcel拓展,最后發現是在執行load方法加載excel文件時出現卡死,之前在導入excel文件一直是正常的,而且excel中的數據也不是很多,到底是由于什么原因造成的呢?
最后在查找phpoffice/phpexcel官方文檔中發現,這是由于excel文件中存在了某些特殊字符導致了加載excel文件時崩潰,既然找到了原因,就一定有解決方法,在phpoffice/phpexcel中有一個屬性可以解決此方法readDataOnly,此屬性在拓展中默認時false,我們需要將readDataOnly屬性設置為true$PHPExcel->setReadDataOnly(true);? //過濾excel中的特殊字符
所以完整的讀取excel的代碼如下:$PHPExcel = new PHPExcel_Reader_Excel2007();
$file = 'excel文件';
try {
if (!$PHPExcel->canRead($file)) {
//默認用excel2007讀取excel,若格式不對,則用之前的版本進行讀取
$PHPExcel = new PHPExcel_Reader_Excel5();
}
$PHPExcel->setReadDataOnly(true);? //過濾excel中的特殊字符
$excel = $PHPExcel->load($file);//加載excel
//讀取excel文件中的第一個工作表
$currentSheet = $excel->getSheet(0);
} catch (Exception $e) {
throw new InvalidValueException('請選擇正確的導入文件!');
}
$allRow = $currentSheet->getHighestRow() - 1; //獲取excel總行數
//讀取excel信息
for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
//讀取指定列數據0表示第一列
$currentSheet->getCellByColumnAndRow(0, $currentRow + 1)->getValue()
}
總結
以上是生活随笔為你收集整理的php使用office modi吗,使用phpoffice/phpexcel拓展读取excel内容卡死解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab红字怎么删除,购买方开具红字
- 下一篇: java zmq zmsg,zmq 识别