• 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');
            
    
    
          
    
           
            
    
         }
    
    
    
  • 相关阅读:
    CORS(跨域)请求总结和测试
    使用parted 创建一个大于2T的分区
    Linux下网络设置
    Linux中文件查找,压缩和打包指令
    使用switchshow/supportshow命令确认Brocade交换机型号(转载)
    光纤交换机端口故障排查
    博科5300光纤交换机内存故障处理
    AIX用户和组管理
    AIX 逻辑卷简介
    AIX中文件系统管理
  • 原文地址:https://www.cnblogs.com/mengluo/p/9646529.html
Copyright © 2020-2023  润新知