继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php 导出 excel 大数据量

secrethaha
关注TA
已关注
手记 1
粉丝 5
获赞 7

最近在做导出数据,用项目中的phpexcel类导出,因为数据量非常大。所以导出数据的时候经常遇到问题,有时php内存溢出,有时请求超时。所以 在网上找了大量的资料自己弄了一个导出实例,仅供参考,大佬勿喷 代码入下

     set_time_limit(0);  //防止请求超时   
     $title= [
      'ID', 'title','汉字', //excel 表头
     ];
     $path = 'D:/wamp/www/';   //定义下载文件路径
     $csvFileName =  $path .'log' . date('Ymd') . '.csv';
     //打开文件写入
     $fp = fopen($csvFileName, 'w');
     mb_convert_variables('GBK', 'UTF-8',  $title);  //汉字编码转换
     fputcsv($fp, $columns);//写入表头
     $totalData = 1000000;//从数据库获取总量,假设是100w
     $pageSize = 1000;//每次查询的条数
     $pages = ceil($totalData  / $pageSize);  //求出总页数分页查询数据

     for($i = 1; $i <= $pages; $i++) {
      /*$data = 从数据库中查出来的数据;
        foreach($data as $value) {
          $rowData = [
           ......//每一行的数据
        ];
       */
       $rowData = [rand(1,99),time(),'汉字'];  //测试数据
       mb_convert_variables('GBK', 'UTF-8', $rowData);
       //写入一行数据
        fputcsv($fp, $rowData);
       //unset($data);//释放变量的内存 以防内存溢出
    }

     fclose($fp); //关闭资源 下载完成
     exit();
打开App,阅读手记
6人推荐
发表评论
随时随地看视频慕课网APP

热门评论

$columns的格式是怎么样的


查看全部评论