项目中需要实现一个功能,动态替换给定模板里面的内容,生成word文档提供下载功能. 中间解决了问题有: 1.页眉的文档logo图片解决,刚开始的时候,HWPFDocument 对象无法读取图片对象(已测试) 2.文档的水印也无法读取 3.下载的乱码问题(火狐浏览器) 4.将文档中的阿拉伯数字的金额改为中文繁体显示 具体代码如下: /** * 拍卖结算之后,进行成交确认书的下载操作方法 * * @param id * @param response */ @RequestMapping(value…
1.控制器方法 private URL base = this.getClass().getResource(""); /** * 流拍之后,可以下载询价单 * * @param id 拍卖id * @param response */ @RequestMapping(value="/inquiryDownLoad",method = RequestMethod.GET) @ResponseBody public void inquiryDownLoad(Strin…
一.问题描述 通过POI,把Word中的占位符替换为实际的值,以生成复杂结构的业务报告. 在POI 3.9上,功能正常.由于某些原因升级到POI 3.10.1后,项目组反馈说Word模板出错,无法生成Word文件,总是报解析错误. 二.问题分析 Word模板功能相关的代码应该说是比较稳定了,相关代码很久没有变动过,而且已经有投产项目在正式使用.现在出了问题,应该是升级POI版本导致的. Word模板内容示例: 本期产品为向${ds:ds001,col:INVESTER_TYPE_NAME}发行的…
最近多了一个需求,需要对word模板内容进行替换,一开始用的是word03版的,替换起来比较简单,主要是range对像替换非常方便,而且可以保留替换前的字体样式. InputStream is = new FileInputStream(srcFath); OutputStream os = new FileOutputStream(tempFile); XWPFDocument doc = new XWPFDocument(is); Range range = doc.getRange();…
tp5   使用phpword 替换word模板并利用com组件转换pdf 一.首先composer安装PHPword,就不多说了 二.然后是把模板中要替换的部分用变量代替 三.把原始的模板文件放入项目目录,tp框就放在了public/upload/目录下 四. 查看php.ini中是否已经开启了com.allow_dcom = true 从php/ext/里面查找一下有没有这个php_com_dotnet.dll这个文件 如果没有网上下载个,一般都会有的吧应该大概可能.. 然后查找这个php.…
我们都知道要想利用java对office操作最经常使用的技术就应该是POI了,在这里本人就不多说到底POI是什么和怎么用了. 先说本人遇到的问题,不同于利用POI去向word文档以及excel文档去写入数据和向外导出数据而且保存到数据库中这些类似的操作,因为业务上的须要须要利用POI去读取word中的图片,而且去把图片去保存为一个file文件.查了Apache公司提供的api帮助文档,再网友的一些线索,本人也总结了几中对不同word版本号(.doc或者是.docx结尾)对于文件里所含图片的操作方…
项目系统中打印功能,导出 word 文档功能是挺常用的,本文介绍自定文档模板,程序实现模板内容中值替代的功能. 模板文件 template.docx ​ 执行 main public static void main(String[] args) { //模板文档路径 String filePath = "D:/DOC/template.docx"; String res = String.valueOf(new Date().getTime()); //生成文档路径 String o…
一.序言 在日常开发中,常常有动态word文件生成的需求,通过编制模版,然后动态修改word内容以组合成新的文件.报告单.请假单.发票页等都可以使用动态生成word来解决. 笔者总结归纳出通用技术要点,尽可能降低广大开发者的使用技术门槛. 二.制作与渲染模版 (一)总体流程 1.准备数据 通过查询数据库获取需要修改的数据,或者是调用远程API接口获得数据,数据准备完毕后,进入下一步. 2.制作word模版 新建并设计出期望效果的word文档样式,包含字体.字号.段落样式布局等,先做出一个静态的w…
阅读目录 Word二次开发概况 使用DsoFramer进行开发 使用Interop进行开发 打开.关闭和写入操作 批量替换文本 遍历段落替换文本 查找后逐个替换文本 结论 在各类应用系统开发中,和Word相关的应用可谓相当广泛.如各类MIS系统.各种和实际业务结合紧密的系统.需要制式报表的系统等,都需要对Word进行操作,典型的应用包括: 1.内嵌Word.在系统中内嵌Word,这样,既可以利用Word强大的功能进行文档的新建.编辑.修改.排版,同时还节省了用户对于编辑器操作的学习成本,提高了文…
利用占位符替换word中的字符串和添加图片   ///<summary>         /// 替换word模板文件内容,包括表格中内容         /// 调用如下:WordStringsReplace("D:/CNSI/CNSI_1.doc", new ArrayList() { "old1", "old2" }, new ArrayList() { "new1", "new2" })…
由于时间比较紧,没多的时候去学习研究上述工具包,现在用javascript操作ActiveXObject控件,用替换word模板中的书签方式解决. 最近有需求将数据导出到word里,然后编辑打印. 想过几种方案: 1.使用jacob. 2.使用apache的poi. 3.使用itext. 由于时间比较紧,没多的时候去学习研究上述工具包,现在用javascript操作ActiveXObject控件,用替换word模板中的书签方式解决. 前提条件: 1.浏览器安全级别降低,可以使用ActiveXOb…
本文主要简单介绍了利用poi包,读取world文件内容. 这个依然存在版本的问题,只能读取doc结尾的老版本文件. 话不多说,上代码: import java.io.File; import java.io.FileInputStream; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.usermodel.Range; public class testdoc { /** * 读取doc文件内容 * @pa…
概述: 近期在做项目的过程中遇到了excel的数据导出和word的图文表报告的导出功能.最后决定用Apache POI来完毕该项功能.本文就项目实现过程中的一些思路与代码与大家共享.同一时候.也作为自己的一个总结.以备后用. 功能: 1.从数据库查询数据导出为excel: 2.导出word的包含,内容有文字.图片,表格等. 效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR0lTU2hpWGlTaGVuZw==/font/5a6L5L2T/fon…
一.需求说明 定期生成word报告,报告中含有文本.表格.图表等元素,依次获取进行替换,保留原有样式,生成新的word文档 二.引入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.1</version> </dependency> <dependency> <…
1.概述 由于前面的引文已经对Open Xml SDK做了一个简要的介绍. 这次来点实际的——Word模板操作. 从本质上来讲,本文的操作都是基于模板替换思想的,即,我们通过替换Word模板中指定元素,来完成生成文档的目的. 不罗嗦了,直接进入主题,以下是步骤: 1) 要了解模板的业务背景——建立领域模型: 2) 针对每一类进行替换——积累每种Element的操作方式: 3) 考虑设计——让你的代码增强可扩展性: 4) 逐步测试——保证能够迭代地前进: 5) 去除噪音——排除那些不归路. 术语约…
转(小改): Java利用poi生成word(包含插入图片,动态表格,行合并) 2018年12月20日 09:06:51 wjw_11093010 阅读数:70 Java利用poi生成word(包含插入图片,动态表格,行合并) 测试模板样式: Word生成结果: 图表 2需要的jar包:(具体jar可自行去maven下载) 注意:需要严格按照上面版本下载jar包,否则可能出现jar包之间不能匹配的导致代码报错 各种 jar包都可以在这里下载: https://mvnrepository.com/…
有时候我们可能遇到相当复杂的excel,比如表头的合并等操作,一种简单的方式就是直接代码合并(浪费时间),另一种就是写好模板,动态的向模板中增加行和修改指定单元格数据. 1.一个简单的根据模板sheet动态修改 原来的excel模板内容如下: 现在的需求是动态的生成生成时间和生成人.并且在第五行开始的数据列表增加5列: package cn.xm.exam.test; import java.io.FileInputStream; import java.io.FileOutputStream;…
实验环境:POI3.7+Word2007 Word模板: 替换后效果: 代码: 1.入口文件 public class Test { public static void main(String[] args) throws Exception { Map<String, Object> param = new HashMap<String, Object>(); param.put("${name}", "huangqiqing"); pa…
Freemaker基于word模板动态导出汇总整理 一.使用的jar包: 二.Word模板动态导出的基本思路: 1.首先通过自己在word中创建好需要导出的word文本+表格的模板,模板中需要填写内容的地方填写${},大括号内为后台传递进来的参数名,然后将该模板另存为xml格式: 2.对xml格式文件进行适当的修改: (1)修改${}所在的位置,让${}在一个标签内,因为替换值是根据${}进行识别的,因此必须让${}在一个标签内: (2)如果有需要循环输出的,需要添加<#list></&…
这是写的另一个导出word方法:https://www.cnblogs.com/pxblog/p/13072711.html 引入jar包,freemarker.jar.apache-ant-zip-1.8.0.jar(制作压缩包使用) 下载地址:   https://yvioo.lanzous.com/b00njhxoh   密码:2mcs 或者maven <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->…
利用freemarker生成基于word模板的word文档 freemarker简介 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP.它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等. freemarker下载地址: http://freemarker.incubator.apache.org/freemarkerdownload.html…
1,最近有个需求,动态生成 Word 文当并供前端下载,网上找了一下,发现基本都是用 word 生成 xml 然后用模板替换变量的方式 1.1,这种方式虽然可行,但是生成的 xml 是在是太乱了,整理就得整理半天,而且一旦要修改模板,那简直就是灾难,而且据说还不兼容 WPS 1.2,所以笔者找到了以下可以直接用 word 文档作为模板的方法,这里做以下笔记,以下代码依赖于 JDK8 以上 2,pom.xml 相应依赖 <!-- 文档模板操作依赖 --> <dependency> &…
https://blog.csdn.net/Fishroad/article/details/47951061?locationNum=2&fps=1 先下载jacob.jar包.解压后将jacob.dll放到windows/system32下面或\jre\bin下面.将jacob.jar加入项目. 这样项目的环境基本上搭建完成,接下来就是书写相关的代码: /** * 传入数据为HashMap对象,对象中的Key代表word模板中要替换的字段,Value代表用来替换的值. * word模板中所有…
public class WordTest2 { public static void main(String[] args) { /** 此Map存放动态替换的内容,key-Word中定义的变量,value-要替换的内容 **/ Map map = Maps.newHashMap(); map.put("CL_XT_zlContractNo", "55555556444444888544"); map.put("LOAN_memberName"…
Freemaker基于word模板动态导出压缩文件汇总整理 Freemaker基于word模板动态导出单个文件思路和代码详情见连接: https://www.cnblogs.com/lsy-blogs/p/9243281.html 核心思路如下: 1.service中写方法,查询需要导出的结果list集合数据: 2.控制层中调用service方法获取结果集合数据,调用freemaker获取对应的word文件到临时目录下: 3.利用流处理,将临时目录下导出的每一个word写入到压缩文件中去,利用流…
在页面上填写值,然后导出到word模板中,并把页面上的值带到模板中,也就是导出word文档,提前有word 的模板形式, 1.jsp 页面   <table class="formTable"> <TR> <TD class="label">会议地点</TD> <TD class="content"> <INPUT id="meetingSite" type=&…
项目开发过程中,客户提出一堆导出报表的需求,需要导出word格式,页眉还需要加上客户公司的logo,试了几种方案,最后选择了用 Apache poi 加上自定义标签的方式实现. 目前功能还比较简单,一些复杂的表格做不了,但是已经基本满足项目需求了. 使用poi读取word模板,替换word中的{text}标签,并根据自定义标签循环生成表格或表格中的行. 代码示例下载:https://download.csdn.net/download/u012775558/10306308 注意,仅支持docx…
前言: 由于对C#操作WORD不熟悉,也就留下这么一篇水文,别吐糟...=_=||| 利用Microsoft.Office.Interop.Word (2003版也就11版)——因为部分客户端还是用Office2003,所以保险起见应该引入低一点的版本 我的需求很简单,从DataTable里面循环取数据批量生成Word文档,解决方案是利用Word模板.dot插入书签并保存为程序使用的模板, 用C#打开word模板修改书签的值并批量生成Word. 遇到的问题: 我的思路是打开模板,然后循环修改书签…
我们知道对于一个java文件,如Test.java,首先需要通过javac命令(javac Test.java)进行编译,生成class文件,再将class文件在jvm上进行加载运行,也就是java命令(java Test). 但是对于以下应用场景:正在运行的java程序,即class文件已经在jvm中运行加载,如果原来的java程序有所改动,重新生成了class文件,但是又不希望kill掉原先的java程序,该怎么做呢?springloaded提供了一个思路. 我是在eclipse下实验的,先…
转: POI往word模板中写入数据 2018年03月24日 16:00:22 乄阿斗同學 阅读数:2977  版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chen497147884/article/details/79678513 POI的XWPFDocument和XWPFTemplate两种方法往word模板中填充数据 import java.io.ByteArrayOutputStream; import java.io.File; i…