PHP 百万数据导出生成压缩包下载

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

1.分批查数据,防止数据库内存溢出
2.生成多个csv文件
3.zip打包下载

//分批打包下载excel
    //导出说明:因为EXCEL单表只能显示104W数据,同时使用PHPEXCEL容易因为数据量太大而导致占用内存过大,
    //因此,数据的输出用csv文件的格式输出,但是csv文件用EXCEL软件读取同样会存在只能显示104W的情况,所以将数据分割保存在多个csv文件中,并且最后压缩成zip文件提供下载
    function putCsv(array $head, $data, $mark = 'attack_ip_info', $fileName = "test.csv")
    {
   
   
        set_time_limit(0);
        $sqlCount = $data->count();
        // 输出Excel文件头,可把user.csv换成你要的文件名
        header('Content-Type: application/vnd.ms-excel;charset=utf-8');
        header('Content-Disposition: attachment;filename="' . $fileName . '"');
        header('Cache-Control: max-age=0');

        $sqlLimit = 100000;//每次只从数据库取100000条以防变量缓存太大
        // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
        $limit = 100000;
        // buffer计数器
PHP百万级数据导出方案(多csv文件压缩 概述:最近公司项目要求把数据除了页面输出也希望有导出功能,虽然之前也做过几个导出功能,但这次数据量相对比较大,差不多一天数据就20W条,要求导7天或者30天,那么数据量就轻松破百万了甚至破千万,因此开发的过程中发现了一些大数据导出的坑,在此跟大家分享一下,互相学习。准备:1、PHP设置坑: set_time_limit – 设置脚本最大执行时间: 此配置一般PHP默认是30秒,如果你是数据小的,可 阅读详情

相关推荐

PHPExcel内存溢出解决方案

PHPExcel内存溢出解决方案 一、当PHPEXCEL导出数据时,PHP内存溢出时,可使用该方法把数据分页追加到Excel文件 1、代码 <?php namespace app\index\controller; class Ablog exte...

夏已微凉、 2303

PHP快速导入大量数据数据库,快速导出百万级数据到CSV或者EXCEL文件

前言: 很多时候,因为数据统计,我们需要将数据库的数据导出Excel等文件中,以供数据人员进行查看,如果数据集不大,其实很容易;但是如果对于大集的导出,将要考虑各种性能的问题,这里以导出数据库一百万数据为例,导出时间不过20秒,值的学习的一种大数据导出方式。总结:在插入大批量数据时,第一种方法无疑是最差劲的,而第二种方法在实际应用中就比较广泛,第三种方法在插入测试数据或者其他低要求时比较合适,速度确实快。如果导出量过大,推荐使用循环导出,每次循环这里以导出一万条为例,循环100次即可全部导出

hanzhuhuaa的博客 2046

ThinkPhp 使用 PHP_XLSXWriter 代替 PHPExcel 百万级数据单次导出2.0(3种方式)

ThinkPhp 使用 PHP_XLSXWriter 代替 PHPExcel 百万级数据单次导出本篇的内容也是基于这一篇的升级版【三种方法如下】1、直接保存文件到项目中2、浏览器弹框下载3、一行行写入,最后保存文件到项目中。

夏已微凉、 1566

ThinkPHP导出百万数据

项目中,需要将数据库中的百万数据导出,用PHPExcel的话,PHP内存会各种溢出什么的,所以就用的CSV批量导出再打包下载,随后删除生成数据。 public function excelout() { $array = array('ulId', 'aucSUPI', 'ucRatRest', 'ausForbidden', 'ausForbidde', 'ausAllowedA

lzj_dandan的博客 6284

php 快速导出百万级数据到 csv 或者 excel 文件

快速掌握通过 PHP 导出海量数据EXCEL

国内某知名游戏公司小菜鸡工程师 1万+

PHP分批次处理百万级数据

其实上面代码还是有优化的空间的,比如说用异常捕捉,以防因为某些错误而导致生成了一些临时文件又没有正常删除,还有PHPexcel的缓存设置也许能解决内存溢出问题,可以生成一个EXCEL文件多个工作表的形式,这样对于文件阅读者来说更友好。4、多个csv文件输出给用户下载是不友好的,我们还需要把多个csv文件进行压缩,最后提供给一个ZIP格式的压缩包给用户下载就好。3、以防不方便excel读取csv文件,我们需要104W之前就得把数据分割进行多个csv文件保存。

程序员 1612

ThinkPhp 使用 PHP_XLSXWriter 代替 PHPExcel 百万级数据单次导出

一、场景二、PHP_XLSXWriter查看三、PHP_XLSXWriter使用四、内容1、代码2、直接保存文件打印3、浏览器输出打印 一、场景 导出数据Excel文件,PHPEXCEL数据量太大时就很耗内存, 我这篇 PHPExcel内存溢出解决方案,一个sheet最多只能写入65536条数据 PHP_XLSXWriter 就比较轻量级,能满足大量数据导出 二、PHP_XLSXWriter查看 PHP_XLSXWriter git 地址 各种场景需使用的Demo 浏览器弹框下载Demo .

夏已微凉、 2224

php thinkphp 导出百万数据方案

先说一下一般我们在执行大数据操作时,遇到最常见的问题就是: 1、执行超时 参考这里 2、内存溢出 参考这里 看了这两个之后再来看这个方案,实现思路大概是: 1、先利用set_time_limit(0)不限制执行时间 2、将要查询的数据分段查询,每次查询创建一个csv临时文件,每次清空缓冲区 3、数据全部写完之后将所有csv文件合并成一个csv文件 4、合并之后利用zip扩展进行打包下载(如果没有安...

LiDong99的博客 1227

如何导出千万级别数据?

简单参考:PHP快速导出百万级数据到CSV或者EXCEL文件 复杂参考:PHP百万级数据导出方案(多csv文件压缩) //简单的使用 function test(){ set_time_limit(0); //设置程序运行内存 ini_set('memory_limit', '128M'); $fileName = '测试导出数据'; header('Content-Encoding: UTF-8'); header(

dj1540225203的博客 1535

php批量数据导出方案

批量导入参考https://blog.csdn.net/qq_20521363/article/details/102647756 <?php /* * 该方法是把数据库读出的数据进行CSV文件输出,能接受百万级别的数据输出,因为用生成器,不用担心内存溢出。 * @param string $sql 需要导出数据SQL * @param string $mark 生成文件的名字...

qq_20521363的博客 313

PHP导出百万数据【解决方案】

按照一定的量,例如:5000条,导出CSV文件,多个CSV文件进行压缩为ZIP,最后导出ZIP里面就有所有数据。例如:3.5w条数据,最终有5个CSV文件,生成一个ZIP压缩文件。最近开发项目,遇到一个问题,通常导出数据我们都会使用 PHPExcel导出数据,但是遇到大数据,这个方法就不行了。

A-南的博客 1844

百万数据php7取出循环_Thinkphp5 分批批量导出百万数据记录的Code,不用PHPEXCEL哦!...

通过phpexcel导出上万条数据,会延迟、内存溢出、程序报错,各种问题出现...届时作者放弃了phpexcel导出数据量还是很可行的。下面通过分批导出csv,并压缩至zip中提供下载...废话不说上代码...部分代码参考网上的哦~~~问题:通过phpexcel导出上万条数据,会延迟、内存溢出、程序报错,各种问题出现...届时作者放弃了phpexcel导出数据量还是很可行的。下面通过分批导...

weixin_39998881的博客 486

PHP 百万级数据导出方案(多 CSV 文件压缩

ps:来源 :https://laravel-china.org/articles/15944/php-million-level-data-export-scheme-multi-csv-file-compression /** * 导出csv文件 * @param $filename * @param $data * @param...

alexcook2010的博客 223

php excel导入导出 淘宝导入

excel单元格字变成字符串方法 '1001010002400000,值前加单引号 当excel文件中的数据设置过,导入的数据excel显示的不同,单个修改数据个单元格格式又很麻烦,这时把excel另存为csv格式即可,用文本方式打开看数据 <?php require 'vendor/autoload.php'; use League\Csv\Reader; use Lea...

hudeyong926的专栏 377

php csv 导出

概述:最近公司项目要求把数据除了页面输出也希望有导出功能,虽然之前也做过几个导出功能,但这次数据量相对比较大,差不多一天数据就20W条,要求导7天或者30天,那么数据量就轻松破百万了甚至破千万,因此开发的过程中发现了一些大数据导出的坑,在此跟大家分享一下,互相学习。准备:1、PHP设置坑:set_time_limit – 设置脚本最大执行时间:此配置一般PHP默认是30秒,如果你是数据小的,可能就...

qiuziqiqi的博客 373
上一篇: 阿里云视频直播测试
下一篇: excel或csv导出 数据变成科学计数法
调调大人
博客等级 码龄8年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值