fastadmin使用PHPExcel导出表格数据到Excel中

fastadmin中有自带的导出Excel,但有时会需要自定义导出表格,这里使用PHPExcel导出:

一,下载phpExcel

1. git clone https://github.com/PHPOffice/PHPExcel

2.也可以百度下载

完成之后会出现以下以下的文件夹 

内部目录

 二,把上图圈住的那个PHPExcel文件夹拷贝到你的项目中

三,在你的控制器中添加导出方法:

    /**
     * 导出
     */
    public function export() {
        //获取数据
        list($total, $list) = $this->_index();
        
        //vendor('PHPExcel.PHPExcel');
        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");
        $arrHeader = array('手机号', '标题', '扫描内容', '日期');
        //填充表头信息
        $lenth = count($arrHeader);
        for ($i = 0; $i < $lenth; $i++) {
            $objActSheet->setCellValue("$letter[$i]1", "$arrHeader[$i]");
        };
        //填充表格信息
        foreach ($list as $k => $v) {
            $k += 2;
            //表格内容
            $objActSheet->setCellValue('A' . $k, $v['phone']);
            $objActSheet->setCellValue('B' . $k, $v['title']);
            $objActSheet->setCellValue('C' . $k, $v['content']);
            $objActSheet->setCellValue('D' . $k, date('Y-m-d H:i:s', $v['createtime']));
            //$objActSheet->setCellValue('E' . $k, $v['goods_images']);
            // 图片生成
            //$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');
        
        
    }

四:在你的index.html页面添加导出按钮:

<a href="javascript:;" class="btn btn-success btn-export {:$auth->check('scanpen/text/export')?'':'hide'}" title="{:__('Export')}" id="btn-export-file"><i class="fa fa-download"></i> {:__('Export')}</a>

五:在你的js文件中调用导出方法:

注意一定要使用window.location.href,不要用ajax请求,否则浏览器不会出现下载条。

简单的直接在【index: function () {  }】中添加代码:

$(document).on("click", ".btn-export", function(){
                console.log(111);
                window.location.href = "text/export";
            });

该文档参考了https://blog.csdn.net/qq_41588568/article/details/109000580

 

                        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值