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');
            
    
    
          
    
           
            
    
         }
    
    
    
  • 相关阅读:
    Golang Gin 框架 Route备注
    golang的时区和神奇的time.Parse
    Linux下查看内存使用情况方法总结
    Golang 图片上绘制文字
    在linux中安装字体
    一键解决 go get golang.org/x 包失败
    go如何进行交叉编译
    Ubuntu中apt与apt-get命令的区别
    linux dns 工具包 -- bind-utils
    nohup 和 &的含义
  • 原文地址:https://www.cnblogs.com/mengluo/p/9646529.html
Copyright © 2011-2022 走看看