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');
            
    
    
          
    
           
            
    
         }
    
    
    
  • 相关阅读:
    堆排序实现
    Unable to convert MySQL date/time value to System.DateTime
    想想那些除了技术之外重要的事情
    js小功能
    01输入框回车触发操作
    javascript闭包
    BQ27510 电量计的校准 的 C语言实现
    嵌入式Linux开发教程:Linux常见命令(上篇)
    技术团队的情绪与效率
    如何有效使用Project(2)——进度计划的执行与监控
  • 原文地址:https://www.cnblogs.com/mengluo/p/9646529.html
Copyright © 2011-2022 走看看