thinkphp3.2 下载Excel表格方法

首先下载PHPExcel文件夹。如果找不到合适点击这里下载

将网上下载的PHPExcel文件夹放在 Thinkphp/Library/Org/Util 下


<?php 

    public function down(){

        $fileName = '学生信息表.xlsx';
        $headArr = [
            '姓名',
            '学号',
            '联系电话',
        ];
        $data = [
            [
                '张三',
                '001',
                '13512345678',
            ],
            [
                '李四',
                '002',
                '13612345678',
            ],
            [
                '王五',
                '003',
                '13712345678',
            ],
        ];

        $this -> getExcel($fileName,$headArr,$data);
    }


    private function getExcel($fileName,$headArr,$data){

        // 将网上下载的PHPExcel文件夹放在Thinkphp/Library/Org/Util下
        import("Org.Util.PHPExcel");
        import("Org.Util.PHPExcel.Writer.Excel5");
        import("Org.Util.PHPExcel.IOFactory.php");
        import("Org.Util.PHPExcel.Cell");

        //创建PHPExcel对象,注意,不能少了\
        $objPHPExcel = new \PHPExcel();
        $objProps = $objPHPExcel->getProperties();

        // 设置居中和列宽
        $objPHPExcel->getActiveSheet()->getStyle('A:Z')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(30);   
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(30);


        //设置表头
        $key = ord("A");
        foreach($headArr as $v){
            $colum = chr($key);
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
            $key += 1;
        }


        $column = 2;
        $objActSheet = $objPHPExcel->getActiveSheet();
        foreach($data as $k => &$v){ //行写入
            $span = ord("A");
            $j = chr($span);
            foreach($v as $kk => $vv){// 列写入
                $j = chr($span);
                $objActSheet -> setCellValue($j.$column, $vv);
                $span++;
            }
            $column++;
        }
        $fileName = iconv("utf-8", "gb2312", $fileName);
        //设置活动单指数到第一个表,所以Excel打开这是第一个表
        $objPHPExcel->setActiveSheetIndex(0);
        ob_end_clean();
        ob_start();
        header('Content-Type: application/vnd.ms-excel');
        header("Content-Disposition: attachment;filename=\"$fileName\"");
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output'); //文件通过浏览器下载
        exit;
    }

猜你喜欢

转载自blog.csdn.net/qq_33679504/article/details/80631095
今日推荐