業務需求有時候要導出幾萬條,我能不能用python來處理??實在太卡了如果用python來處理又改怎麼弄
一萬多條不是很多. 可以使用 PHPExcel 這個第三方函式庫. 或直接導出 csv , 函數: fputcsv .
PHPExcel
csv
fputcsv
導出的話,直接導成CVS模式就好了.
可以不一次性導出。分批導出
像這種耗時的伺服器任務不應該設計成瀏覽器->同步->伺服器;應該是非同步任務的形式:
瀏覽器->同步->伺服器
瀏覽器:我要一個Excel,你先幫我產生
伺服器:好的,任務已開始
瀏覽器:我來刷新一下看看(可以用長連接替代),好像完成了,你把URL(URL可以體現在任務中,無需再獲取)給我,我要下載了
伺服器:http://domain.com/test.xlsx
瀏覽器:開始下載
10000多條就不行了?文件是有多大啊
你可以把生成做成成分段式…1000條1000條寫。 另外php超時的話可以改下set_time_limit()
異步,所有導出操作都應該做成非同步
寫成分頁 例如1000條刷新一次
用腳本去跑, php -f export.php
使用非同步或多進程,瀏覽器提交任務,提示任務已經在處理,後台多進程腳本慢慢處理,出來完成給瀏覽器推個訊息提示用戶導出操作已經完成,可以下載了。 瀏覽器推播訊息:http://www.workerman.net/web-...多行程框架:http://doc3.workerman.net/ins...
一萬多條不是很多. 可以使用
PHPExcel
這個第三方函式庫. 或直接導出csv
, 函數:fputcsv
.導出的話,直接導成CVS模式就好了.
可以不一次性導出。分批導出
像這種耗時的伺服器任務不應該設計成
瀏覽器->同步->伺服器
;應該是非同步任務的形式:
瀏覽器:我要一個Excel,你先幫我產生
伺服器:好的,任務已開始
瀏覽器:我來刷新一下看看(可以用長連接替代),好像完成了,你把URL(URL可以體現在任務中,無需再獲取)給我,我要下載了
伺服器:http://domain.com/test.xlsx
瀏覽器:開始下載
10000多條就不行了?文件是有多大啊
你可以把生成做成成分段式…1000條1000條寫。
另外php超時的話可以改下set_time_limit()
異步,所有導出操作都應該做成非同步
寫成分頁 例如1000條刷新一次
用腳本去跑, php -f export.php
使用非同步或多進程,瀏覽器提交任務,提示任務已經在處理,後台多進程腳本慢慢處理,出來完成給瀏覽器推個訊息提示用戶導出操作已經完成,可以下載了。
瀏覽器推播訊息:http://www.workerman.net/web-...
多行程框架:http://doc3.workerman.net/ins...