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