zoukankan      html  css  js  c++  java
  • php 导出word

    通过phpword类来实现此功能,首先确定word模板(docx格式的),我们首先要替换的是姓名,电话。现在把这两个值用变量代替,模板里面的变量样式为 ${name} ,如下:

    前提确定好了,下面开始干活

    1、通过compaser安装phpword包:

    composer require phpoffice/phpword

    2、我把模板文件放在项目public下面,调用类库然后引入文件

            include_once "../vendor/autoload.php";
            $tmp = new \PhpOffice\PhpWord\TemplateProcessor('../public/模板.docx');//打开模板
            $tmp->setValue('name','李四');//替换变量name
            $tmp->setValue('phone','18888888889');//替换变量phone
    
            //循环放入
        $rows=count($res);//总行数  $res为查询出来的二维数组
        $tmp->cloneRow('date_time',$rows);//复制行
        for($i=0;$i<$rows;$i++){
            $tmp->setValue("date_time#".($i+1),$res[$i]['date_time']);//替换变量  date_time字段名称
        }    
         $file_name = "测试".date('Y-m-d').".docx"; //生成测试带时间的文件名称
         $tmp->saveAs($file_name);//另存为到pubilc下面
            //Cache::set('file_name',$file_name);//我放在缓存里 方便下一个方法获取
    

      

    3、因为我的需求是每次后需要下载文件并删除,所以我又写了一个方法来实现文件下载和删除

            //$file_name = Cache::get('file_name');
            //Cache::set('file_name','');
            unlink("../public/".$file_name);
            return $file_name;     

    以上就是我所用到的方法,哪位大神如果有什么好的建议或方法 ,可以评论!

    本文来自博客园,作者:小ྀ青ྀ年້,转载请注明原文链接:https://www.cnblogs.com/dalaowang/p/15656467.html

  • 相关阅读:
    数据库如何部署上线阅读总结
    Nginx解决防盗链,服务器宕机,跨域,防DDOS
    跨域和表单重复提交
    Socet
    Redis发布订阅
    MySQL和Oracle的区别
    Redis事务、持久化、发布订阅
    Redis主从复制和哨兵模式
    Idea中使用Redis的Java客户端和Jedis
    Redis介绍及命令
  • 原文地址:https://www.cnblogs.com/dalaowang/p/15656467.html
Copyright © 2011-2022 走看看