需求:

甲方爸爸说“我有一个word文件,里面是关于用户信息的表格,你帮我把系统里面所有用户数据都按照这个文件导出来给我“;

我当时就不乐意了,啪的一拍桌子站起来,愤愤的回了一句“好的,什么时候要”

百度查了一堆有的没有的,看起来都好麻烦的样子,于是决定走走捷(直接做字符替换)

本想着直接fread然后字符替换就完事的,结果读了一堆乱码。。。。

最终实现思路↓↓↓

写个接口实现完成这些操作吧

一、打开甲方爸爸给的word文件,另存为xml格式文件(左上角另存为,格式下拉选择xml)

二、格式化xml文件,百度上一堆在线格式化的网站~

三、找到 关键数据 替换成特殊字符串(一定要保证不会重复,比如 sb_jia_fang_XXX),然后直接根据不同数据进行替换保存即可。步骤三和四  按需 二选一

四、把xml文件中的关键数据换成 模板变量 比如TP框架的"{$sb}",多数js模板引擎的"{{sb}}",然后把用户数据传入变量渲染模板即可。

五、到这一步已经得到了一个用户2的表格的xml字符串,设置请求头部content-type,让本次请求返回文件下载,格式定为doc,然后输出该xml代码字符串,前台浏览器会提示下载文件,保存即可。

一句话概括:word转xml,xml关键数据修改,服务器设置请求头信息返回文件下载~~

php生成word文件相关推荐

  1. JSP生成word文件

    1.jsp生成word文件,直接改动jsp格式: <%@ page contentType="application/vnd.ms-word;charset=GB2312"% ...

  2. Java技术:SpringBoot集成FreeMarker生成word文件

                    今天给大家分享SpringBoot集成FreeMarker模板引擎生成word文件的用法,感兴趣的可以学一下,完整源码地址在文章末尾处,欢迎互相沟通交流! 一.什么是F ...

  3. php如何生成本地文档,php如何生成word文件

    php生成word文件的方法: 需求: 甲方爸爸说"我有一个word文件,里面是关于用户信息的表格,你帮我把系统里面所有用户数据都按照这个文件导出来给我": 我当时就不乐意了,啪的 ...

  4. Java使用iText生成word文件的完美解决方案(亲测可行)

    JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案 一种是pio但是他的excel处理很程序 wor ...

  5. Java使用iText生成word文件的解决方案

    JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案 一种是pio但是他的excel处理很程序 wor ...

  6. java itext word_Java使用iText生成word文件的解决方案 | 学步园

    转自[http://www.31km.cn/post/450.html] JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操 ...

  7. PHP导出word【 直接生成word文件 】

     使用composer安装PHPword: composer require phpoffice/phpword  直接生成word文件: public function makePhpWord(){ ...

  8. Python 自动化教程(5) : 自动生成Word文件

    系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...

  9. Freemark生成Word文件的加密处理

    Word文件加密处理 Word文件的加密处理 具体实现 Word文件的加密处理 最近完成了一个使用freemark生成文档的需求.本次实现使用的是freemark模板技术. 具体实现 首先使用wps或 ...

  10. 艺赛旗(PRA)根据制式模板批量生成 word 文件

    艺赛旗 RPA8.0全新首发免费下载 点击下载 http://www.i-search.com.cn/index.html?from=line1 请看程序运行过程: 操作 word 其实是一件很痛苦的 ...

最新文章

  1. java dagger2_从零开始搭建一个项目(rxJava+Retrofit+Dagger2) ---上
  2. 数据科学之基石:数据科学家必须掌握的10个统计学概念
  3. 内存分配函数 ExAllocatePool ExAllocatePoolWithTag
  4. linux语言换成英语,把Linux的默认语言改为英语
  5. InfoQ —— 腾讯游戏大数据服务场景与应用
  6. Java中什么是匿名对象,空参构造方法输出创建了几个匿名对象,属性声明成static...
  7. vant 项目_vueCli4+vant+router+vuex+移动端适配
  8. windows下ping命令的结果前加上系统的当前时间
  9. Matlab二进制文件的读写
  10. python文件操作基础(复习)
  11. PostgreSQL视图使用特殊名称作字段时的处理
  12. 使用switch常量c语言,c语言switch(c语言switch语句用法)
  13. Unity中,区别LookAt与LookRotation
  14. 安装驱动显卡重启计算机,Win7电脑安装显卡驱动后一直重启的解决方法
  15. H2数据库中的数据类型
  16. 基于JAVAWeb前端开发技术儿童教育网站计算机毕业设计源码+数据库+lw文档+系统+部署
  17. 2018CVTE后台研发工程师内推笔试编程题2
  18. C#,SOAP1.1与1.2的发布与禁用(SOAP 1.2 in .NET Framework 2.0)
  19. Kafka 生产者数据安全(ACK机制,ACK时机,ACK应答机制,故障处理,Exactly Once)
  20. Kaldi单音子建模

热门文章

  1. 【Shader进阶】Shader的Lod
  2. sql java web动态曲线图_使用Echarts实现动态曲线图表
  3. Freeswitch 常用命令
  4. 计算机英语it英语,计算机英语 IT专业英语词典 11
  5. 第三方账号登陆-sina微博_PC篇
  6. 【LOJ3124】「CTS2019」氪金手游
  7. 文智背后的奥秘系列篇——情感分类
  8. 【Vue】基础系列(八)数据绑定以及姓名案例的三种写法
  9. ffmpeg Intel硬件加速总结
  10. 解决微信小程序RangeError: WebAssembly.instantiate(): Out of memory: wasm memory内存不足问题