EasyPoi 实现Word文档内容替换3种情况(正常文本替换、表格文本替换、图表替换)
1 Maven依赖
<!-- EasyPoi文档处理工具 --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.4.0</version></dependency><!-- JFreeChart图表库 --><dependency><groupId>org.jfree</groupId><artifactId>jfreechart</artifactId><version>1.5.3</version></dependency><!-- Hutool工具包 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.2</version></dependency>
2 调试代码
/*** 替换内容** @param response* @throws IOException*/@GetMapping("/replaceContent")public void replaceContent(HttpServletResponse response) {try {//读文件ClassPathResource cpr = new ClassPathResource("/doc/模板.docx");XWPFDocument document = new MyXWPFDocument(cpr.getInputStream());//生成文本内容MapMap<String, Object> contentMap = new HashMap<>();contentMap.put("xudongmaster1", "旭东怪1");contentMap.put("xudongmaster2", "旭东怪2");//图例名称列表List<String> legendNameList = new ArrayList<>(Arrays.asList("一级", "二级", "三级", "四级", "五级"));//数据列表List<Object> dataList = new ArrayList<>(Arrays.asList(1, 3, 5, 6, 2));//生成饼图数据byte[] chartBytes = GenerateChartUtil.createPieChart("各级占比情况", legendNameList, dataList, 300, 400, JFreeChartUtil.createChartTheme("宋体"));//将饼图数据变成图片ImageEntity image = new ImageEntity();//设置高度image.setHeight(400);//设置宽度image.setWidth(300);//类型image.setType(ImageEntity.Data);image.setData(chartBytes);contentMap.put("chart", image);//替换文本内容WordExportUtil.exportWord07(document, contentMap);//返回流response.setHeader("content-type", "application/octet-stream");response.setContentType("application/octet-stream;charset=UTF-8");response.setHeader("Content-Disposition", "attachment; filename=" + new String("模板.docx".getBytes("utf-8"), "ISO-8859-1"));OutputStream outputStream = response.getOutputStream();document.write(outputStream);outputStream.flush();outputStream.close();} catch (Exception e) {e.printStackTrace();}}
3 模板文件
模板路径:
模板内容:
4 调试结果
注:
(1)模板中的替换标记必须以{{开始,以}}结尾,同时替换标记最好先在记事本中输入好,在复制到Word文档中,否则会出现内容替换失败的情况。
(2)GenerateChartUtil、JFreeChartUtil的源码请查看以下博客。
JFreeChart 生成5种图表(饼图、柱状图、堆叠柱状图、折线图、散点图)
EasyPoi 实现Word文档内容替换3种情况(正常文本替换、表格文本替换、图表替换)相关推荐
- 快速批量修改word文档内容
快速批量修改word文档内容 在工作中可能经常遇到需要对word中同一位置的内容进行批量修改或者替换,如果数据量小,手动改一改就可以了,但是遇到大量的修改,再用手动修改的方法的话,工作量就变得很大了, ...
- Java——EasyPoi导出word文档,itextpdf转换pdf
EasyPoi导出word文档,itextpdf转换pdf 文章目录 EasyPoi导出word文档,itextpdf转换pdf 前言 一.依赖 二.工具类 1.WordUtil 2.PDF工具类 3 ...
- 亿愿WORD文档内容搜索及工具集-打造最全面的OFFICE、pdf、txt等各类文件快捷批量处理工具
[亿愿WORD文档内容搜索及工具集(YYWORDSearch)] 1)专业搜索指定目录下的WORD文件(*.DOC;*.DOCX;).WPS文件(*.WPS).Powerpoint文件(*.ppt;* ...
- python批量修改word文档内容
实现的目标 批量修改word文档内容,此脚本直接修改文件,不是另存为,建议先copy再修改.多级目录结构对脚本没有影响,脚本会遍历"path"下所有目录以docx结尾文档. 用到的 ...
- Python动态修改Word文档内容,保留格式样式,并批量生成PDF
Python动态修改Word文档内容,保留格式样式,并批量生成PDF 前言 一.需要安装的库 二.核心逻辑-替换 前言 假如你有一个Word模版文档,要在里面填写人员信息,但人员有成百上千个,手动填起 ...
- 合并多个word的代码_快速合并多个word文档内容,别再复制粘贴了!
问题情境: 相信很多童鞋在处理多个word文档内容合并时,我想一般情况下你们都会打开各个文档,复制里面的内容,再粘贴到同一个文档里面. 技巧步骤: 1. 首先新建一个文档,单击"插入&quo ...
- java读取word文档内容_合并多个Word文档内容,还在复制粘贴就out了,同事五秒轻松搞定...
在我们工作中,我们经常会编写多个Word文档内容,那么怎么将多个单个的Word文档合并到一个文档中,这就会显得有些难度. 如上图所示,我们需要将三个不同的案例,快速的汇总到我们的案例汇总表当中.许多朋 ...
- 计算机word文档无法预览,电脑打开Word文档内容显示不全或显示空白怎么解决
很多用户会在电脑中使用必装的Microsoft Office系列软件.有用户在电脑中打开Word文档,发现内容显示不全,有时候显示空白,那么应该怎么解决这一问题?对此,大家可以参考本教程提供的方法. ...
- html5在线显示word文档,JS实现获取word文档内容并输出显示到html页面示例
本文实例讲述了js实现获取word文档内容并输出显示到html页面.分享给大家供大家参考,具体如下: title var w = new activexobject('word.application ...
最新文章
- 【python】 针对python3 下无法导入tkinter
- 机械工业出版社之道格·赫尔曼《Python 3标准库》目录
- python-pygame激动时刻你我共享
- android git提交整个项目_使用子模块和子树来管理 Git 项目 | Linux 中国
- mysql 语句优化实例_MySQL 语句优化实例
- 【Linux】一步一步学Linux——fc命令(224)
- 使用Forge插件在现有Java EE项目上启用Arquillian
- android5.1 显示方向,Android5.1 Settings.apk定制显示选项
- 运用数组,输出从小到大的10个数
- 这个 80 后 IT 男厉害了!他用北京蜗居的首付在东京海淘了一栋楼!
- php检测是否存在敏感词,如何用PHP+Ajax判断是否有敏感词汇
- Node介绍及环境配置~超级详细哦
- 数据聚合与分组运算——GroupBy
- 【Codeforces Round #508 (Div. 2)】Slime【简单贪心】
- adb 黑域app_黑域ADB报错解决方法
- 计算机取证的相关案例,计算机取证案例分析
- 重装Office教程
- 为什么要去做亚马逊僵尸跟卖呢 亲身经历告诉你
- Android UI控件大全
- 服务器准系统diy,网易科技频道--DIY自己的低价“准系统”:之MICRO ATX主板篇