项目中某一需求:
用户在平台提交表单数据,根据表单数据后台生成用户的word文档,(word模板文档替换为用户数据,并将其归类到用户文件夹下,方便后续导出压缩包)。

个人在这一需求中,将word模板文件存于某一文件夹中,后端编写逻辑时,只要用户提交数据验证通过,则建立用户个人文件夹,调用word模板,进行变量替换,将替换后的word文档另存于用户的文件夹中。

后续发现多位用户文档未生成,原来是同一时间提交数据,造成抢占模板文档资源,并发导致失败。

解决:最后通过用户提交时,在用户文件夹下,将模板文档复制一份到其中,后续替换只对用户各自文件夹下的模板进行替换,生成文档,解决这一问题。

use \PhpOffice\PhpWord\Template;class SubmitFilesModel
{private $_template = FILEPATH . 'export/template.docx'; //doc 模板文件位置public function submit_data($path) {//用户提交数据,将模板文档复制一份到用户目录copy($this->_template, $path . 'template.docx');}public function export_word($data, $path) {//模板文件固定位置// $template = $this->_template;//模板文件变更到用户目录下$template = $path . 'template.docx';//打开模板$tmp = new Template($template);//替换变量name$tmp->setValue('name', $data['name']);$tmp->setValue('company', $data['company']);$tmp->setValue('title', $data['title']);//过滤符号$name = trim(str_replace(' ', '', str_replace('\\', '', str_replace('/','',$data['name']))));$file = $path . $name . '_' . $data['title'] . '.docx';//另存为$tmp->saveAs($file);}

word模板文档替换,解决并发导致替换失败相关推荐

  1. Java-POI替换Word模板文档中的变量,生成Word文档

    第一步:在项目中导入POI的jar包,以及相关的jar包. 所需的jar包列表: 下载地址:http://download.csdn.net/download/qq_34908167/10046670 ...

  2. android 生成多个表单,Android根据word模板文档将表单数据生成word文档的方案整理...

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 尝试的方案包括以下几种: freemarker 只能在java项目上运行,无法在Android项目上运行: poi 解析doc文件可 ...

  3. C# 读取Excel文件,并写入word模板文档

    1.该程序是一个win32控制台程序 2.开发工具是VS2010,office是2013版的 3.需要添加以下引用 4 在C盘保存.dot模板,样式如下 6.excel中的数据格式,最好都设置为常规. ...

  4. java openxml 操作 word,(三)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之html转word...

    (三).JAVA基于OPENXML的word文档插入.合并.替换操作系列之html转word 系列笔记传送门 富文本转word文档 准备待转换内容 内容清理与格式化 转换成word文档 输出结果展示 ...

  5. (五)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之word文件合并[支持多文件]

    (五).JAVA基于OPENXML的word文档插入.合并.替换操作系列之word文件合并[支持多文件] 二.word合并的多种方案简单比较 三.基于Open Xml WordprocessingML ...

  6. java用模板生成word(docx)文档(含动态表格)

    生成word思路 用WPS或者office编辑好word的样式,然后另存为word xml文档,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Docx. 编 ...

  7. word模板生成word报表文档

    主要功能为根据word模板生成word报表文档,注意引用Interop.Word.dll; 首先要生成word程序对象 Word.Application app = new Word.Applicat ...

  8. (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇

    (一)JAVA基于OPENXML的word文档插入.合并.替换操作系列之基础篇 前言 什么是Open Xml? Open XML SDK 这系列笔记要做点什么? 涉及技术点 关于word.openxm ...

  9. 创建模板只有从空白html文档开始创建,word 2019如何创建空白文档和模板文档

    学习word2019文字处理的时候,我们首先要知道如何来创建word2019文档,创建word文档和ppt.excel创建文档的方式基本一致,只有创建好了文档我们才可以进行录入和修改,今天我们就来学习 ...

  10. word7计算机搜索设置,win7系统下word文档中进行查找和替换的方法【图文教程】...

    在win7系统电脑中,我们经常会用到word软件来编辑一些文档,已经成为装机必备软件,而在使用word的时候会使用到多种编辑的处理方式,比如查找替换功能,尤其是在长篇的文档中,当需要替换某些字或符号的 ...

最新文章

  1. 71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP
  2. 生命起源之谜:RNA世界假说将迎来终结?
  3. Exploring the 7 Different Types of Data Stories
  4. echarts统计x轴区间的数值
  5. 银行营业网点管理系统——implt包(CityAreaDaoImpl )
  6. java创建读取文件_Java实现文件的创建、读取、写入操作-Fun言
  7. 精准高效估计多人3D姿态,美图北航分布感知式单阶段模型(CVPR 2022)
  8. Android 系统性能优化(30)---Android性能全面分析与优化方案研究
  9. Dune Analytics 发布 v2 版本,新增自动实时查询刷新
  10. oracle rac心跳机制_详解RAC集群中cache fushion原理
  11. python实现强化学习
  12. 微型计算机的始祖:Altair 8800 | Linux 中国
  13. qt.qpa.plugin:Cound not load the QT platform plugin “windows“ in “ “even though it was found.
  14. DAZ场景转换进3Dmax
  15. 利用Redis的Geo功能实现查找附近的位置!
  16. 一文讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系!
  17. 抖音直播间挂人气协议工具
  18. 自考计算机应用技术题,4月全国自考计算机应用技术试题及答案解析
  19. Git无法添加文件夹下文件
  20. 重庆微企获5000万元风投-平板电脑和手机菜单系统-家庭智能信息终端

热门文章

  1. qq和qq浏览器的区别
  2. 算法引论:一种创造性方法(书)
  3. 梨花众创 - 微信支付宝收款二维码合并器
  4. 微信内置浏览器直接下载APK的解决方法
  5. 简约html5动态个人简历,HTML5 简约风格的程序员简历模板
  6. python好用的软件_新手写Python程序有什么推荐好用编辑器
  7. python算法基础教程_python算法教程pdf下载
  8. 【解决方案修复谷歌翻译 Windows、macOS】谷歌翻译退出了中国市场不能用了
  9. Nginx面试题(总结最全面的面试题!!!)
  10. Bootstrap第一坑,.net MVC项目中bootstrap引用Roboto字体,fonts.gstatic.com字体下载过慢导致页面巨卡问题