zoukankan      html  css  js  c++  java
  • php 导出excel 10万数据

    php导出excel 10万数据(此代码主要测试用)

    在工作当中要对一些基本信息和其他信息导出

    起初信息比较小无所谓。。。。

    但当信息超出65535的时候

    发现点问题了 超出了 而且 反应速度很慢

    实现思路:

    分页导出
    

    伪代码:
    1、获取总数据,并确定显示多少条数据(我这里显示2万)
    2、循环页数
    2.1 从1开始,获取当前页面偏移量[(当前页-1)*显示的数据条数]
    2.2 根据偏移量显示2万条数据
    2.3 选择和创建excel页码
    2.4 设置excel基本数据
    2.5 循环导出数据并填充到excel中
    3、数据下载

    
         public function ceshi()
         {
            
           
    
            //总记录数
            $result=$this->db->count_all_results('nb_specialty');
    
            
            //每次导出20000条记录
            $limit=20000;
    
            //获取需要的总文件数
            $excel_count=ceil($result/$limit);
    
            $objPHPExcel = new PHPExcel();
    
            //循环导出
            //$i 文件一
            for($i=1;$i<=$excel_count;$i++)
            {
                //获取偏移数据
                $startSelect=($i-1)*$limit;
    
                if($i==1)
                {
                    $objPHPExcel->setActiveSheetIndex($i-1);
                }else{
                    $objPHPExcel->createSheet();
                    $objPHPExcel->setActiveSheetIndex($i-1);
                }
    
                $result_array=$this->db->limit($limit,$startSelect)->get('nb_specialty')->result_array();
    
                //echo $this->db->last_query();
    
                $objPHPExcel->getActiveSheet()->setTitle('培养方案 -- 项目');
    
                $objPHPExcel -> setActiveSheetIndex($i-1)
                -> setCellValue('A1', '测试');
    
                foreach($result_array as $key=>$val)
                {
                    $objPHPExcel->getActiveSheet()->setCellValue('A'.$key, $val['id']);
                    
                }
     
                
            }
    
            
    
            header('pragma:public');
    
            header('Content-type:application/vnd.ms-excel;charset=utf-8;name="测试.xls"');
    
            header("Content-Disposition:attachment;filename=测试.xls");//attachment新窗口打印inline本窗口打印
    
            $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
    
            $objWriter->save('php://output');
            
    
    
          
    
           
            
    
         }
    
    
    
  • 相关阅读:
    JStorm开发经验+运维经验总结
    Storm-166:Nimbus HA solution based on Zookeeper
    Storm实战集锦
    JStorm之Nimbus简介
    BF算法 + KMP算法
    分布式消息系统:Kafka
    分布式服务框架:Zookeeper简介
    修改JSONArray里所有key的值
    JQuery中$.ajax()方法参数详解
    java利用16进制来辨别png格式的图片
  • 原文地址:https://www.cnblogs.com/mengluo/p/9646529.html
Copyright © 2011-2022 走看看