TP5 解决如何实现生成并导出Word文档功能

今天连续更新两篇文章,上一篇讲了一下如何生成PDF并导出文件的功能
接下来我们就来拼一拼怎么实现生成并导出word文档的功能
话不多说 我们直接上流程:
1.下载安装phpword插件:composer require phpoffice/phpword
2.安装成功后该插件在我们项目vendor会出现phpoffice文件夹,点进去看一下如果有phpword说明下载成功了。
在这里插入图片描述
3.我们在控制器(任意取名)并引入对应的类,我在控制器中创建了一个方法(使用模板替换),还有一种方法是直接用代码生成word
在这里插入图片描述先定义一个word文档。并保存到你的项目里。
下面是代码直接生成word

// test
    public function test(){
        $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");*/
        $path = './report/'.date("YmdHis").'.doc';
        $objWriter->save($path);
        $file1 = fopen($path, "r");
        // 输入文件标签
        Header("Content-type: application/octet-stream");
        Header("Accept-Ranges: bytes");
        Header("Accept-Length:".filesize($path));
        Header("Content-Disposition: attachment;filename=" . date("YmdHis").'.doc');
        ob_clean();     // 重点!!!
        flush();        // 重点!!!!可以清除文件中多余的路径名以及解决乱码的问题:
        //输出文件内容
        //读取文件内容并直接输出到浏览器
        echo fread($file1, filesize($path));
        fclose($file1);
        exit();
    }

4.然后使用下载这个方法进行下载word
在这里插入图片描述
到此生成并导出word文档功能已成功实现。
以上代码亲测有效。可以正常使用, 记得关注收藏!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 PHP TP5 框架中实现微信支付功能,你需要完成以下几个步骤: 1. 注册微信商户平台账号,并在商户平台中创建应用,获取到商户ID和商户密钥。 2. 安装并配置 PHP SDK,可以使用官方提供的 SDK 或者选择第三方 SDK。 3. 编写支付接口,接收前端传来的订单信息,将订单信息传递给微信支付接口,生成预支付订单,并返回预支付订单信息给前端。 4. 前端根据预支付订单信息调起微信支付页面,用户完成支付后,微信将会回调你的支付回调接口。 5. 在支付回调接口中,验证微信回调的签名,防止恶意攻击,确认订单支付状态,更新订单状态等操作。 下面是一个简单的示例代码,仅供参考: ```php // 引入微信支付 SDK use EasyWeChat\Factory; // 创建支付对象 $config = [ 'app_id' => 'your-app-id', 'mch_id' => 'your-mch-id', 'key' => 'your-key', 'cert_path' => 'path/to/your/cert.pem', 'key_path' => 'path/to/your/key.pem', ]; $payment = Factory::payment($config); // 发起支付请求 $result = $payment->order->unify([ 'body' => 'test', 'out_trade_no' => 'your-order-id', 'total_fee' => 100, 'spbill_create_ip' => '127.0.0.1', 'notify_url' => 'your-notify-url', 'trade_type' => 'JSAPI', 'openid' => 'your-user-openid' ]); // 将预支付订单信息返回给前端 return $result; // 支付回调接口 $payment->notify(function ($notify, $successful) { // 验证签名 if (!$successful) { return 'fail'; } // 更新订单状态等操作 return 'success'; }); ``` 注意,以上代码仅为示例代码,具体实现需要根据你的业务需求进行调整。同时,为了确保支付安全,请务必仔细阅读微信支付开发文档,并遵循开发规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于先生吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值