php解决导出大数据execl问题
描述:在实际工作中,有时候我们需要导出大量数据到execl里面,可以参考分页方式导出,将每一页的数据放进php输出流里面 代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <?php ini_set( 'memory_limit' , '2048M' ); header( 'Content-Description: File Transfer' ); header( 'Content-Type: application/vnd.ms-excel' ); header( 'Expires: 0' ); header( 'Cache-Control: must-revalidate' ); header( 'Pragma: public' ); $filename = "111.xlsx" ; header( "Content-Disposition:filename={$filename}" ); $fp = fopen( "php://output" , 'a' ); $title = [ "id" , "name" , "age" , "aa" , "bb" ]; $str = implode( "\t" ,$title). "\n" ; fwrite($fp,$str,strlen($str)); $bigData=[]; for ($i=0;$i<1000000;$i++){ $tmp=[]; $tmp[ "id" ]=1; $tmp[ "name" ]= "lisi" ; $tmp[ "age" ]=20; $tmp[ "aa" ] = 20; $tmp[ "bb" ] = 20; array_push($bigData,$tmp); } $result = array_chunk($bigData,5); for ($i=0;$i<count($result);$i++){ $data = $result[$i]; for ($j=0;$j<count($data);$j++){ $show=[]; $id = $data[$j][ "id" ]; $name = $data[$j][ "name" ]; $age = $data[$j][ "age" ]; $aa = $data[$j][ "aa" ]; $bb = $data[$j][ "bb" ]; array_push($show,$id); array_push($show, $name); array_push($show, $age); array_push($show, $aa); array_push($show, $bb); $strshow = implode( "\t" ,$show). "\n" ; fwrite($fp,$strshow); } file_put_contents( "./1.txt" ,$i,FILE_APPEND); ob_flush(); flush(); } fclose($fp); exit; ?> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2020-01-05 PHP多进程非阻塞模式下结合原生Mysql与单进程效率测试对比
2020-01-05 PHP实现多进程并行操作,可做守护进程(转,备用)
2020-01-05 php多进程结合Linux利器split命令实现把大文件分批高效处理
2020-01-05 PHP多进程处理并行处理任务实例(转,备用)
2020-01-05 PHP多进程并行执行php脚本
2020-01-05 PHP多进程学习(三)__代码案例来了解父进程与子进程的执行顺序
2020-01-05 PHP多进程学习(二)__fork起多个子进程,父进程的阻塞与非阻塞