15年软件开发经验 只做源码定制 互联网+定制化解决方案

15年软件开发经验,只做源码定制!

原创设计 定制开发

满足您的个性化需求

当前位置:首页 后端开发 Thinkphp5

后台数据导入Excel,生成Excel文件

教腾豪| 发布于 2021-07-19 21:00:59| 130阅读| 0点赞| 0评论
举报

Excel的生成,导入Excel

需要用到PHPExcel 的类方法

$objPHPExcel = new \PHPExcel();

实例化phpexcel对象

vendor('PHPExcel.PHPExcel.PHPExcel');
vendor('PHPExcel.PHPExcel.PHPExcel.PHPExcel_IOFactory');

设置Excel的属性


        $objPHPExcel->getProperties()
            ->setCreator("jiayu jiang")					//创建人
            ->setLastModifiedBy("Maarten Balliauw")				//最后修改人
            ->setTitle("Office 2007 XLSX Test Document")		//设置标题
            ->setSubject("Office 2007 XLSX Test Document")		//设置主题
            ->setDescription("Test document ")					//设置备注
            ->setKeywords( "office 2007 openxml php")			//设置关键字
            ->setCategory( "Test result file");					//设置类别

给表格的单元格设置名称数据

// 给表格添加数据
        $objPHPExcel->setActiveSheetIndex(0)             //设置第一个内置表(一个xls文件里可以有多个表)为活动的
            ->setCellValue( 'A1', 'Group Code / Policy ID' )
            ->setCellValue( 'B1', 'FirstName' )
            ->setCellValue( 'C1', 'Middle Initial' )
            ->setCellValue( 'D1', 'LastName' )
            ->setCellValue( 'E1', 'Address1' )
            ->setCellValue( 'F1', 'Address 2' )
            ->setCellValue( 'G1', 'City' )
            ->setCellValue( 'H1', 'State' )
            ->setCellValue( 'I1', 'Zip' )
            ->setCellValue( 'J1', 'Telephone' )
            ->setCellValue( 'K1', 'E-Mail' )
            ->setCellValue( 'L1', 'MemberType' )
            ->setCellValue( 'M1', 'SSN' )
            ->setCellValue( 'N1', 'Dob' )
            ->setCellValue( 'O1', 'Gender' )
            ->setCellValue( 'P1', 'PayersName' )
            ->setCellValue( 'Q1', 'CheckNumber' )
            ->setCellValue( 'R1', 'CreditCardNumber' )
            ->setCellValue( 'BB1', 'Age' );

按照单元格的对应行和列设置名称

接下来

用数据库的表数据,添加到Excel表格里

 $objPHPExcel->setActiveSheetIndex(0)             //设置第一个内置表(一个xls文件里可以有多个表)为活动的
                ->setCellValue( 'A'.($kk+2), $insurance_age['jihua_id'] )
                ->setCellValue( 'B'.($kk+2), $vv['ming'] )
                ->setCellValue( 'C'.($kk+2), '' )
                ->setCellValue( 'D'.($kk+2), $vv['xing'] )
                ->setCellValue( 'E'.($kk+2), $vv['address'] )
                ->setCellValue( 'F'.($kk+2), '' )
                ->setCellValue( 'G'.($kk+2), $vv['city_chengshi'] )
                ->setCellValue( 'H'.($kk+2), $vv['city_zhou'] )
                ->setCellValue( 'I'.($kk+2), $vv['zipcode'] )
                ->setCellValue( 'J'.($kk+2), $phone )
                ->setCellValue( 'K'.($kk+2), $vv['email'] )
                ->setCellValue( 'L'.($kk+2), '1' )
                ->setCellValue( 'M'.($kk+2), '' )
                ->setCellValue( 'N'.($kk+2), $vv['age'] )
                ->setCellValue( 'O'.($kk+2), $sex )
                ->setCellValue( 'P'.($kk+2), '' )
                ->setCellValue( 'Q'.($kk+2), '' )
                ->setCellValue( 'R'.($kk+2), '' )
                ->setCellValue( 'S'.($kk+2), '' )
                ->setCellValue( 'T'.($kk+2), '' );
//激活当前表 Number(num).toFixed(2)   sprintf("%1\$.2f", 5)
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean();//清除缓冲区,避免乱码

最后需要生成Excel和提示下载即可

 //生成Excel,并自定义保存路径
        //"Excel2007"生成2007版本的xlsx,"Excel5"生成2003版本的xls
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
        $time=time();
        if(empty($start) && empty($end)){
            $name=date('Y-m-d',$time);
        }else{
            $name=$start.'---'.$end;
        }
        $objWriter->save('/mnt/data/home/master/applications/xytbeayffn/public_html/public/excel/'.$name.'.xlsx');
        return ['code'=>1,'msg'=>'ok','url'=>'/public/excel/'.$name.'.xlsx'];

提示下载

//弹出提示下载文件
        header('pragma:public');
        header("Content-Disposition:attachment;filename=name.xls");
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory:: createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save( 'php://output');
0

0条评论

别默默看啦~登录/注册一起参与讨论吧~

热门标签

教腾豪
微信扫一扫立即咨询
账号登录|扫码登录

立即注册 |忘记密码?

欢迎注册

已有账号马上登录

重置密码

扫码绑定微信
微信扫一扫

绑定手机号

分享到-微信

举报

  • 举报类型:

  • 举报描述:

您好,当前积分不足。

在线客服
拨打电话
17330196230 13230981129
顶部