当前位置:   article > 正文

PHPWord替换word模板内容_php word模板替换

php word模板替换

Composer安装 phpword

composer require phpoffice/phpword
  • 1

php代码

public function export(){
        $id=input('id');
        $info=db('record a')
            ->join('user b','a.user_id=b.id')
            ->join('school_class c','b.school_class_id=c.id','left')
            ->join('school_class d','b.school_class_id2=d.id','left')
            ->join('school_admin e','a.school_admin_id=e.id','left')
            ->field('a.*,b.nickname,b.username,b.gender,b.age,c.name grade,d.name class,e.name')
            ->where('a.id',$id)->whereNull('a.deletetime')->find();
        if(!$info) $this->error('记录不存在');
        //视频对话
        $result=db('record_video')->where('record_id',$id)->where('status',2)->whereNull('deletetime')->field('result,createtime')->select();
        //测评报告
        $user_answer=db('user_answer')->alias('a')
            ->join('scale b','a.scale_id=b.id')
            ->where('a.user_id',$info['user_id'])
            ->whereTime('a.createtime','between',[strtotime($info['day']),strtotime($info['day'])+24*3600-1])
            ->whereNull('a.deletetime')->order('a.id desc')
            ->field('a.content ans_content,b.name ans_name,a.score ans_score')->select();

        //历史评语
        $record_log=db('record_log')->where('record_id',$id)->select();

        //文档模板
        $templates = './template/ban.docx';
        //声明一个模板对象、读取模板
        $templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor($templates);

        //基础信息  单个设置
        $templateProcessor->setValue('nickname',$info['nickname']);
        $templateProcessor->setValue('gender',$info['gender']==1?'男':'女');
        $templateProcessor->setValue('age',$info['age']);
        $templateProcessor->setValue('grade',$info['grade']);
        $templateProcessor->setValue('class',$info['class']);
        $templateProcessor->setValue('name',$info['name']);
        $templateProcessor->setValue('day',$info['day']);

        //测评报告列表 复制块
        $templateProcessor->cloneBlock('ans_block',count($user_answer),true,false,$user_answer);

        //咨询全流程记录列表  复制块
        foreach ($result as &$item){
            $item['ask_day']=date('Y-m-d',$item['createtime']);
            $ask_result=json_decode($item['result'],true);
            $html='';
            foreach ($ask_result as $v){
                $html.='用户'.$v['user'].':'.$v['str'].'<br/>';
            }
            $item['ask_result']=$html;
        }
        $templateProcessor->cloneBlock('ask_block',count($result),true,false,$result);

        //历史评语  复制行
        $templateProcessor->cloneRow('com_day',count($record_log));
        foreach ($record_log as $k=>$v){
            $templateProcessor->setValue('com_day#'.($k+1), date('Y-m-d',$v['createtime']));
            $templateProcessor->setValue('com_result#'.($k+1), $v['result']);
        }

        $path = $info['nickname'].'_'.$info['day']."_测评报告.docx";
        //生成新的word
        $templateProcessor->saveAs($path);
        //发送到浏览器
        \fast\Http::sendToBrowser($path);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65

模板样式
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/685357
推荐阅读
相关标签
  

闽ICP备14008679号