PHPWORD使用文档

一:引入

tp5.0,tp5.1:

1:composer方式(推荐)

a:根目录下执行:composer require phpoffice/phpword

b:引入:

use PhpOffice\PhpWord\PhpWord;

2:下载引入方式

a:下载PHPWord:

地址:https://pan.baidu.com/s/19UctPmT5tdn0SqrEgM56MA

提取码:zxcv

b:放到项目根目录extend文件夹下,目录结构如下:

  

c:引入

use PhpOffice\PhpWord\PhpWord;

二:导出

$file = '../extend/files/pdf.docx';//路径,可更改

$PHPWord = new PhpWord();

$template = $PHPWord->loadTemplate($file);//加载模板

$template->setValue('title', '标题');//替换值

$file = date('Y-m-d-H-i-s') . '.docx';//文件名

$encoded_filename = urlencode($file); // 将文件名进行urlencode转码

$file = str_replace('+', '%20', $encoded_filename);

header("Content-Description: File Transfer");

header('Content-Disposition: attachment; filename="' . $file . '"');

header('Content-Type:application/vnd.openxmlformats-officedocument.wordprocessingml.document');

header('Content-Transfer-Encoding: binary');

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

header('Expires: 0');

$template->saveAs('php://output');

格式:

//替换值(模板内为${title},如模板图)

$template->setValue('title', '标题');

//选择框(模板内为check0和check1<字体是【Wingdings 2】>,替换时R是选中,£是未选,如模板图)
$template->setValue('check0', 1? 'R' : '£');//与模板内check0对应,变量命名可更改,与模板一致即可

$template->setValue('check1', 0? 'R' : '£');//与模板内check1对应,变量命名可更改,与模板一致即可

//复制行

$template->cloneRow('本行最左边的变量名', '要复制的行数');

//复制行-举例(如模板图)

$user = [['no'=>'1', 'name'=>'张三', 'sex'=>'男'], ['no'=>'2', 'name'=>'李四', 'sex'=>'女']];

$rows = count($user);

$template->cloneRow('no', $rows);//复制行,no是要复制行的最左边变量,$rows代表复制几行,复制后会是no#1,name#1,sex#1;no#2,name#2,sex#2这样的

for ($i = 0; $i < $rows; $i++) {

$template->setValue('no#' . ($i + 1), $user[$i]['no']);

$template->setValue('name#' . ($i + 1), $user[$i]['name']);

$template->setValue('sex#' . ($i + 1), $user[$i]['sex']);

}

//复制块,也可用于是否显示

$template->cloneBlock('块标签名','数量');//模板内为${块标签名}和${/块标签名}和html标签一样,成对出现,内容放中间

//复制块-举例(如模板图)

$show_name="显示";

$template->cloneBlock('show',2);//复制两个

$template->setValue('show_name',$show_name);//设置值

$template->cloneBlock('hide',0);//复制0个,代表隐藏,值也不用设了

//插入图片(模板内为${img})

$template->setImageValue('img', ['path' => '路径','width'=>500,'height'=>500]);

模板图

 

 

结果图

tp5使用PHPWord(下载引入/composer两种方式)的更多相关文章

  1. git下载代码的两种方式以及eclipse集成git

    1.第一种使用tortoiseGit插件: 链接:https://pan.baidu.com/s/1ANDydwfaaVcUaqZDJWc_BQ 提取码:qgxt a.首先在setting中的Git中 ...

  2. java 下载文件的两种方式和java文件的上传

    一:以网络的方式下载文件 try { // path是指欲下载的文件的路径. File file = new File(path); // 以流的形式下载文件. InputStream fis = n ...

  3. HttpURLConnection下载图片的两种方式

    public class MainActivity extends AppCompatActivity { private ImageView iv; private String imageurl ...

  4. C++服务器下载文件的两种方式

    #include <afxinet.h>#include "wininet.h" #pragma comment( lib, "wininet.lib&quo ...

  5. spring配置文件注解方式引入的两种方式

    一.#{beanID['propertiesName']}方式 <bean id="propertyConfigurer" class="org.springfra ...

  6. 引入外部CSS的两种方式及区别

    1.CSS的两种引入方式 通过@import指令引入 @import指令是CSS语言的一部分,使用时把这个指令添加到HTML的一个<style>标签中: 要与外部的CSS文件关联起来,得使 ...

  7. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

    参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...

  8. 引入springboot的两种方式以及springboot容器的引入

    一.在项目中引入springboot有两种方式: 1.引入spring-boot-starter-parent 要覆盖parent自带的jar的版本号有两种方式: (1)在pom中重新引入这个jar, ...

  9. 服务容错保护断路器Hystrix之一:入门示例介绍(springcloud引入Hystrix的两种方式)

    限流知识<高可用服务设计之二:Rate limiting 限流与降级> 在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的 ...

随机推荐

  1. FL Studio水果音乐制作入门教程

    "没有早期音乐教育,干什么事我都会一事无成".这并非某位音乐家精心熬制的心灵鸡汤,而是出自物理学家爱因斯坦之口,朋友们没有看错,就是那个被称为二十世纪伟大科学家的爱因斯坦,所以,别 ...

  2. Mac专用下载器Folx软件中有没有“下载速度控制”功能

    Mac专用下载器Folx软件不仅下载速度快,功能多,而且也可以实现下载上传速度控制的功能.下面小编将在Mac系统平台上,使用Folx 5版本,向大家全面介绍下Folx这款下载软件的速度控制功能,其中包 ...

  3. Mac下载器Folx的标签功能怎么使用

    当大家使用Folx下载软件的时候,会发现,下载好的文件或者视频,会被Folx自动打上标签,进行归类,这其实就是Folx自带的智能标签功能,它能智能识别图片.视频.应用程序并分类.但很多时候,智能标签并 ...

  4. idea中安装阿里巴巴的代码规范插件

    1.打开iead软件,从左上角点击File  ->  Settings  ->  Plugins 2.安装完成后,重启idea软件,即可正常使用了.

  5. So Easy! HDU - 4565

    易知,有\(S_n = \lceil{a + \sqrt{b}}\rceil ^ n\) \(\because a ^ 2 - 1 < b < a ^ 2\) \(\therefore a ...

  6. Kafka源码环境搭建

    github地址:https://github.com/apache/kafka clone下来之后可以看到这样的项目结构: 文件目录说明. 目录 描述 bin Windows 和 Linux 下 K ...

  7. 【Golang】基础-操作 csv 文件

    1. csv plugins,自带极简 1.1 写数据到csv文件 知识点:encoding/csv 库的 Write 方法使用[]string的切片格式追加方式写入数据 1.1.1 追加写入 pac ...

  8. 树莓派RTL8723BU_LINUX驱动安装

    1.安装前准备:sudo apt-get -y update;sudo apt-get -y upgrade;sudo apt-get -y dist-upgrade;sudo apt-get ins ...

  9. 老猿学5G扫盲贴:3GPP中的5G计费架构

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.计费逻辑架构和信息流 在32240子系列文档内 ...

  10. PyQt(Python+Qt)学习随笔:QTreeWidget中获取指定位置项的itemAt方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeWidget的itemAt方法通过视口内的坐标点获取对应坐标位置的项,相关调用方法如下: ...