phpexcel 導出怎么提升效率(注:cvs格式可以忽略,這個導出有操作單元格的操作)
目前我想到的是:
優(yōu)化sql現(xiàn)在是有一個數(shù)據(jù)詳情的接口,現(xiàn)在是拿到數(shù)據(jù)的ID數(shù)組來循環(huán)這個項目詳情接口取出需要的字段
目前沒有想到別的好方法,請大神們賜教。
溫故而知新,可以為師矣。 博客:www.ouyangke.com
phpExcel的性能很差,占用內(nèi)存,用這個一般都會限制導出行數(shù),如果不過多的考慮樣式之類,可以使用t的方式導出excel,
舉個例子
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
//輸出內(nèi)容如下:
echo "姓名"."\t";
echo "年齡"."\t";
echo "學歷"."\t";
echo "\n";
echo "張三"."\t";
echo "25"."\t";
echo "本科"."\t";
?>
我們公司現(xiàn)在大部分導出excel數(shù)據(jù)都用t,性能完爆phpExcel,題主可以去測試一下性能比
1.能不依賴phpexcel是挺好優(yōu)化,其實很多函數(shù)方法你用不著。而且還要加載
2.sql查詢也是個優(yōu)化,這個沒看到代碼就不說了。
3.你在sql抽出來數(shù)據(jù)可能過多的時候,其實是很占用php內(nèi)存,所以建議寫入excel后就立馬清除數(shù)據(jù)。
使用隊列異步執(zhí)行PHPExcel
的導入和導出,特別是當執(zhí)行的是上萬、上十萬甚至是百萬條數(shù)據(jù)
分批導入和導出
優(yōu)化代碼,盡量減少對數(shù)據(jù)庫的訪問