տAPP,tp5 实现phpexcel 导出数据

浏览:4420 发布日期:2018/06/23 分类:求助交流 关键字: tp5 phpexcel 导出数据
今天有一个项目用到了导出数据这个功能网上搜了很多答案最终实现。使用PHPExcel来进行导出数据,Comporse 下载不下来,于是就去github里面手动下载,下载完成后发现里面文件很多,这里我们只用到了Classes这个文件,将Classes重命名为PHPExcel放到vendor目录下就可以。
php中代码(请自觉忽略方法名):    public function daochu(){
        $xlsData = Db('member')->select();
        Vendor('PHPExcel.PHPExcel');//调用类库,路径是基于vendor文件夹的
        Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
        Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
        $objExcel = new \PHPExcel();
        //set document Property
        $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
 
        $objActSheet = $objExcel->getActiveSheet();
        $key = ord("A");
        $letter =explode(',',"A,B,C,D,E,F,G,H,I,J");
        $arrHeader = array('姓名','公司','公司地址','邮箱','电话','职位','行业应用','会员角色','是否验证');
        //填充表头信息
        $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['real_name']);
            $objActSheet->setCellValue('B'.$k, $v['cor_name']);
            $objActSheet->setCellValue('C'.$k, $v['com_add']);
            $objActSheet->setCellValue('D'.$k, $v['email']);
            $objActSheet->setCellValue('E'.$k, $v['tel']);
            $objActSheet->setCellValue('F'.$k, $v['position']);
            $objActSheet->setCellValue('G'.$k, $v['apphang']);
            $objActSheet->setCellValue('H'.$k, $v['role_id'] == 2?'正式会员':'普通会员');
            $objActSheet->setCellValue('I'.$k, $v['active'] == 1?'是':'否');
            // 表格高度
            $objActSheet->getRowDimension($k)->setRowHeight(20);
        }
 
        $width = array(10,15,20,25,30);
        //设置表格的宽度
        $objActSheet->getColumnDimension('A')->setWidth($width[1]);
        $objActSheet->getColumnDimension('B')->setWidth($width[2]);
        $objActSheet->getColumnDimension('C')->setWidth($width[3]);
        $objActSheet->getColumnDimension('D')->setWidth($width[4]);
        $objActSheet->getColumnDimension('E')->setWidth($width[1]);
        $objActSheet->getColumnDimension('F')->setWidth($width[1]);
        $objActSheet->getColumnDimension('G')->setWidth($width[1]);
        $objActSheet->getColumnDimension('H')->setWidth($width[1]);
        $objActSheet->getColumnDimension('I')->setWidth($width[1]);
 
 
        $outfile = "信息列表.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');
    }
然后在需要的地方调用这个方法即可实现数据导出功能

目前遇到的问题:本地测试正常,放到阿里linux主机上如果不开启debug就会报500错误
最佳答案
评论( 相关
后面还有条评论,点击查看>>