zoukankan      html  css  js  c++  java
  • thinkphp5集成phpexcel的导出方法

    之前用过很多次 后来折腾了好久 这次记录下来

    1 下载phpexcel 在这里直接下

    https://github.com/PHPOffice/PHPExcel

    2 下载后 解压

    在thinkphp的vendor目录新建文件夹  phpexcel 然后把解压后的classes里面的文件 拷贝到phpexcel里面

    效果如图

    3 如果使用

    封装了一个导出函数

        /**
         * 直接导出需要生产的内容
         * @param $field
         * @param $list
         * @param string $title
         * @throws PHPExcel_Exception
         * @throws PHPExcel_Writer_Exception
         */
        public function phpExcelList($field, $list, $filename='文件')
        {
            vendor("PHPExcel.PHPExcel");
            $objPHPExcel = new PHPExcel();
            $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //设置保存版本格式
            foreach ($list as $key => $value) {
                foreach ($field as $k => $v) {
                    if ($key == 0) {
                        $objPHPExcel->getActiveSheet()->setCellValue($k . '1', $v[1]);
                    }
                    $i = $key + 2; //表格是从2开始的
                    $objPHPExcel->getActiveSheet()->setCellValue($k . $i, $value[$v[0]]);
                }
            }
            header("Pragma: public");
            header("Expires: 0");
            header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
            header("Content-Type:application/force-download");
            header("Content-Type:application/vnd.ms-execl");
            header("Content-Type:application/octet-stream");
            header("Content-Type:application/download");;
            header('Content-Disposition:attachment;filename='.$filename.'.xls');
            header("Content-Transfer-Encoding:binary");
            $objWriter->save('php://output');
        }
        

    4 怎样调用

     //导出
        public function Output()
        {
            $data=array(
                0=>array('id'=>1,'serial_number'=>'123','batch'=>'1'),
                1=>array('id'=>2,'serial_number'=>'124','batch'=>'2'),
                2=>array('id'=>3,'serial_number'=>'125','batch'=>'3'),
            );
            $filename='序列号';
            $field = array(
                'A' => array('id', '序号'),
                'B' => array('serial_number', '序列号'),
                'C' => array('batch', '批次'),
            );
            //$this->downloadExcel($data,$title,$filename);
            $this->phpExcelList($field,$data,$filename);
                
             
        }

    如果想继续追加  那么$field请C后面写D 这样  这个是excel里面的列明  $data里面的数据类似

    5 效果如图

  • 相关阅读:
    hihoCoder #1176 : 欧拉路·一 (简单)
    228 Summary Ranges 汇总区间
    227 Basic Calculator II 基本计算器II
    226 Invert Binary Tree 翻转二叉树
    225 Implement Stack using Queues 队列实现栈
    224 Basic Calculator 基本计算器
    223 Rectangle Area 矩形面积
    222 Count Complete Tree Nodes 完全二叉树的节点个数
    221 Maximal Square 最大正方形
    220 Contains Duplicate III 存在重复 III
  • 原文地址:https://www.cnblogs.com/baker95935/p/12484230.html
Copyright © 2011-2022 走看看