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 效果如图

  • 相关阅读:
    NOIP2014飞扬的小鸟[DP][WRONG]
    POJ2184 Cow Exhibition[DP 状态负值]
    Quantum Bogo sort浅谈
    POJ3211 Washing Clothes[DP 分解 01背包可行性]
    VIJOS P1426兴奋剂检查[DP 状态哈希]
    VIJOS P1037搭建双塔[DP]
    NOIP2006金明的预算方案[DP 有依赖的背包问题]
    POJ1742 Coins[多重背包可行性]
    NOIP水题合集[3/未完待续]
    单调队列
  • 原文地址:https://www.cnblogs.com/baker95935/p/12484230.html
Copyright © 2011-2022 走看看