thinkphp5集成phpword

浏览:10757 发布日期:2018/06/06 分类:ThinkPHP5专区 关键字: phpword
看了好多资料,很多都没解决这个问题,今天我来谈谈我这里实现的。
首先用composer来下载phpword,前提是你已经安装了tp5的框架,我用的是composer局部安装,没有全局安装(如果全局安装的需要提前安装好composer)。局部安装需要下载composer.phar文件到你框架的根目录,全局安装可能不需要这个。
然后配置composer.json,直接在框架中自带的文件中添加,如下图

原来的框架中使用的镜像是国外的,如果你那里网络够好的话可以不需要配置国内镜像,【ps】但大部分人是需要用国内镜像的,来看下图

在原来json文件中添加一下,到这里配置就可以了。
下一步进入dos界面切换到你框架的根目录执行 php composer.phar install稍等几分钟下载phpword就下载完了,你可以到vendor目录下面看一下,
之后在你需要的controller用命名空间的方式引入use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\PhpWord;
在function中写phpword的代码就可以了// New Word Document
        $PHPWord = new PhpWord();

        // New portrait section
        $section = $PHPWord->createSection();
        $arr['project_name'] = '云桥';
        $arr['buy_start_time'] = '20180515';
        $arr['buy_end_time'] = '20190825';
        $arr['start_s'] = '20190825';
        $arr['end_s'] = '20190825';
        $arr['total'] = 25;
        $arr['tfee'] = 2500;
        // Add text elements
        $str = "        ".$arr['project_name']."项目,与腾讯房产于".$arr['buy_start_time']."至".$arr['buy_end_time']."开展腾讯电商团购合作,".$arr['start_s']."至".$arr['end_s']."内,共计售出房屋". $arr['total']."套,成交明细见附件,收取服务费合计".$arr['tfee']."元,特此证明。";

        $str5 = "        本确认函中的房源均已通过网签为确认标准,经双方授权代表签字后生效作为收款确认依据。且一旦签字盖章,乙方将不再承担该房源后续的电商团购费的退款责任。";


        $str1 = "甲    方:                                                           乙    方:";
        $str2 = "授权代表签字:                                                 授权代表签字:";
        $str3 = "盖章:                                                                  盖章:";
        
        $str4 = "签约时间:20        年        月        日                                    签约时间:20         年        月        日";
        $title = '<h1>腾讯电商合作成交签约确认函</h1>';

        $section->addText($title,'rStyle','pStyle');
        $section->addTextBreak(2);
        $section->addText($str,'cOntent');
        $section->addTextBreak(2);
        $section->addText($str5,'cOntent');
        $section->addTextBreak(2);
        // $section->addText(iconv('utf-8','GB2312//IGNORE',$str1),'cOntent');
        // $section->addText(iconv('utf-8','GB2312//IGNORE',$str2),'cOntent');
        // $section->addText(iconv('utf-8','GB2312//IGNORE',$str3),'cOntent');
        // $section->addText(iconv('utf-8','GB2312//IGNORE',$str4),'cOntent');
        $section->addText($str1,'cOntent');
        $section->addText($str2,'cOntent');
        $section->addText($str3,'cOntent');
        $section->addText($str4,'cOntent');
        $section->addTextBreak(2);

//        $section->addText('I am inline styled.', array('name'=>'Verdana', 'color'=>'006699'));
        $section->addTextBreak(2);
        $PHPWord->addFontStyle('cOntent', array('bold'=>false, 'size'=>12));
        $PHPWord->addFontStyle('rStyle', array('bold'=>true, 'italic'=>false, 'size'=>16,'align'=>'center'));
        $PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100));
//        $section->addText('I am styled by two style definitions.', 'rStyle', 'pStyle');
//        $section->addText('I have only a paragraph style definition.', null, 'pStyle');

//         Save File
        $objWriter = IOFactory::createWriter($PHPWord, 'Word2007');
        header("Content-Type: application/doc");
        header("Content-Disposition: attachment; filename=".date("YmdHis").".doc");
        // $objWriter->save('php://output');
我这里是生成word后下载,phpword相关配置的说明,可以百度一下。
大功告成,你也来试试吧。
最佳答案
评论( 相关
后面还有条评论,点击查看>>