84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
业务需求有时候要导出几万条,我能不能用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...