zoukankan      html  css  js  c++  java
  • PhpWord使用

          接到一个试卷导出的需求,使用的PhpWord,对导出的页面格式的规划可以使用模板,设计好自己的模板后,代码中直接对模板的变量替换值;还有一种方法就是直接实例化一个空白页,一点一点添加text等信息.

      下载PhpWord到项目中

    composer require phpoffice/phpword

    设计好自己模板的格式,将模板放到项目中,命名为.docx格式,如下图:

    //第一步:创建模板对象
    $template = new TemplateProcessor('./template.docx') #模板文件路径与名
    //第二部:插入数据
    $template->setValue('title','期中考试')
    //如果想要插入图片,可使用setImageValue,用法同setValue
    //第三步:保存文件
    $template->saveAs('./shijuan.docx') #另存为
    

      saveAs()是将赋值好的模板另存为到本地,如果想点击后从浏览器下载,如下:

    ob_clean();
    ob_start();
    $f = fopen('./shijuan.docx',"r");
    $f_size = filesize('./shijuan.docx');
    Header("Content-type:application/octet-stream");
    Header("Accept-Ranges:bytes");
    Header("Accept-Length:".$file_size);
    Header("Content-Disposition:attchment; filename=".shijuanload.docx');
    $buffer = 1024;
    $file_count = 0;
    while (!feof($f) && $file_count < $file_size){
               $file_con = fread($fp,$buffer);
               $file_count += $buffer;
               echo $file_con;    
    }
    fclose($fp);
    ob_end_flush();
    

      但是写到最后,想使用CloneBlock(),DeleteBlock()和CloneRow()等方法的时候,发现总是报错,在github上老外指出是源码正则匹配的问题,只好改用addText的方法,还挺好用,可以设置自己享用的样式,可以参考文档https://phpword.readthedocs.io/en/latest/.

  • 相关阅读:
    编译器小知识
    C++ 文件大小格式化
    如何利用开盘半小时预测当天走势
    判断股票跌到位及买进时机的简单原则
    六招炒股绝技 牛市熊市都赚钱
    细分行业龙头
    股市新手入门口诀
    关于量价十八则的口诀
    如何确认底部的条件及操作原则
    每日一招:散户巧寻主力筹码的方法
  • 原文地址:https://www.cnblogs.com/liuqingyang/p/11207448.html
Copyright © 2011-2022 走看看