PHPExcel 导出 Excel表格中 详细步骤!!!

版权声明:adorable wolf https://blog.csdn.net/adorablewolf/article/details/88394160

1.  通过composer下载Excel表格的thinkPHP扩展
     composer require phpoffice/phpexcel
     下载到了vender/phpoffice/phpexcel

2.下载完成后有一个phpoffice 文件夹

  .

3. 把 Classes 文件夹 重命名 成 PHPExcel  

.

4. 修改后 只要这三个文件夹  其他的文件删除即可

   .

5. 将代码复制到控制器中

    /**
     * 导出EXCEL
     */
    public function export()
    {
        //查询数据库信息
        try {
            $xlsData = Db::table('user')->select();
        } catch (\Exception $e) {
            return $e->getMessage();
        }
        Vendor('PHPExcel.PHPExcel');//调用类库,路径是基于vendor文件夹的
        Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
        Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
        //实例化
        $objExcel = new \PHPExcel();
        //设置文档属性
        $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
        //设置内容
        $objActSheet = $objExcel->getActiveSheet();
        $key = ord("A");
        $letter = explode(',', "A,B,C,D,E,F");
        $arrHeader = array('用户ID', '用户名', '用户密码', '注册时间', '来源渠道');
        //填充表头信息
        $lenth = count($arrHeader);
        for ($i = 0; $i < $lenth; $i++) {
            $objActSheet->setCellValue("$letter[$i]1", "$arrHeader[$i]");
        };
        //填充表格信息
        foreach ($xlsData as $k => $v) {
            $k += 2;
            //表格内容
            $objActSheet->setCellValue('A' . $k, $v['id']);
            $objActSheet->setCellValue('B' . $k, $v['username']);
            $objActSheet->setCellValue('C' . $k, $v['password']);
            $objActSheet->setCellValue('D' . $k, date('Y-m-d H:i:s', $v['reg_time']));
            $objActSheet->setCellValue('E' . $k, $v['channel']);
            // 图片生成
            //$objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();
            //$objDrawing[$k]->setPath(ROOT_PATH."public/static/image/playbtn.png");
            // 设置宽度高度
            //$objDrawing[$k]->setHeight(40);//照片高度
            //$objDrawing[$k]->setWidth(40); //照片宽度
            // 设置图片要插入的单元格
            //$objDrawing[$k]->setCoordinates('C' . $k);
            // 图片偏移距离
            //$objDrawing[$k]->setOffsetX(30);
            //$objDrawing[$k]->setOffsetY(12);
            //$objDrawing[$k]->setWorksheet($objExcel->getActiveSheet());

            // 表格高度
            $objActSheet->getRowDimension($k)->setRowHeight(20);
        }

        $width = array(20, 20, 15, 10, 10, 30, 10, 15);
        //设置表格的宽度
        $objActSheet->getColumnDimension('A')->setWidth($width[5]);
        $objActSheet->getColumnDimension('B')->setWidth($width[1]);
        $objActSheet->getColumnDimension('C')->setWidth($width[0]);
        $objActSheet->getColumnDimension('D')->setWidth($width[5]);
        $objActSheet->getColumnDimension('E')->setWidth($width[5]);

        $outfile = md5("人员表" . time()) . ".xlsx";
        ob_end_clean();
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename="' . $outfile . '"');
        header("Content-Transfer-Encoding: binary");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        $objWriter->save('php://output');
    }

6.  调用方法即可

      

7.ok完成了

     

猜你喜欢

转载自blog.csdn.net/adorablewolf/article/details/88394160