Java 使用poi-tl下载Word
poi-tl官网
poi-tl(poi template language)是基于Apache POI的Word模板引擎。纯Java组件,跨平台,代码短小精悍,通过插件机制使其具有高度扩展性。
引入包
compile group: 'com.deepoove', name: 'poi-tl', version: '1.4.2'
定义模板
word生成代码
public class WordTest {/*** 准备数据*/@Testpublic void test() {String option = "{xAxis: {\n" +" type: 'category',\n" +" data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n" +" },\n" +" yAxis: {\n" +" type: 'value'\n" +" },\n" +" series: [{\n" +" data: [820, 932, 901, 934, 1290, 1330, 1320],\n" +" type: 'line'\n" +" }]\n" +"}";String option2=" {\n" +" backgroundColor: '#2c343c',\n" +"\n" +" title: {\n" +" text: 'Customized Pie',\n" +" left: 'center',\n" +" top: 20,\n" +" textStyle: {\n" +" color: '#ccc'\n" +" }\n" +" },\n" +"\n" +" tooltip : {\n" +" trigger: 'item',\n" +" formatter: \"{a} <br/>{b} : {c} ({d}%)\"\n" +" },\n" +"\n" +" visualMap: {\n" +" show: false,\n" +" min: 80,\n" +" max: 600,\n" +" inRange: {\n" +" colorLightness: [0, 1]\n" +" }\n" +" },\n" +" series : [\n" +" {\n" +" name:'访问来源',\n" +" type:'pie',\n" +" radius : '55%',\n" +" center: ['50%', '50%'],\n" +" data:[\n" +" {value:335, name:'直接访问'},\n" +" {value:310, name:'邮件营销'},\n" +" {value:274, name:'联盟广告'},\n" +" {value:235, name:'视频广告'},\n" +" {value:400, name:'搜索引擎'}\n" +" ].sort(function (a, b) { return a.value - b.value; }),\n" +" roseType: 'radius',\n" +" label: {\n" +" normal: {\n" +" textStyle: {\n" +" color: 'rgba(255, 255, 255, 0.3)'\n" +" }\n" +" }\n" +" },\n" +" labelLine: {\n" +" normal: {\n" +" lineStyle: {\n" +" color: 'rgba(255, 255, 255, 0.3)'\n" +" },\n" +" smooth: 0.2,\n" +" length: 10,\n" +" length2: 20\n" +" }\n" +" },\n" +" itemStyle: {\n" +" normal: {\n" +" color: '#c23531',\n" +" shadowBlur: 200,\n" +" shadowColor: 'rgba(0, 0, 0, 0.5)'\n" +" }\n" +" },\n" +"\n" +" animationType: 'scale',\n" +" animationEasing: 'elasticOut',\n" +" animationDelay: function (idx) {\n" +" return Math.random() * 200;\n" +" }\n" +" }\n" +" ]\n" +"}";String txt = "这是一段文字";String testImg2 = "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3601643726,2993647989&fm=26&gp=0.jpg";getWord(option, option2, txt, testImg2);}/*** 生成word* @param option echartsoption* @param option2 echartsoption* @param txt 文字* @param testImg2 网络图片地址*/public static void getWord(String option, String option2, String txt, String testImg2) {try {//获取echarts图片流List<byte[]> listByte = getImgByte(option, option2);//获取模板Resource resource = new ClassPathResource("template/test.docx");Map map = new HashMap();map.put("txt", txt);map.put("testimg", new PictureRenderData(500, 300, ".png", listByte.get(0)));map.put("testimg2", new PictureRenderData(500, 300, ".png", BytePictureUtils.getUrlByteArray(testImg2)));map.put("testimg3", new PictureRenderData(500, 300, ".png", listByte.get(1)));XWPFTemplate template = XWPFTemplate.compile(resource.getFile()).render(map);downloadLocalhost(template);return;} catch (IOException e) {e.printStackTrace();}}/*** 获取多个图片流** @return*/public static List<byte[]> getImgByte(String option, String option2) {String options[] = {option, option2};List<byte[]> listByte = WebDriverUtil.getImgByte(options);return listByte;}/*** 网络流下载** @param template* @param response*/public static void downloadServlet(XWPFTemplate template, HttpServletResponse response) {try {response.setHeader("Content-disposition", "attachment;filename=" + new String("简报".getBytes("gb2312"), "ISO8859-1") + ".docx");response.setCharacterEncoding("utf-8");response.setContentType("application/octet-stream");response.setContentType("multipart/form-data;charset=UTF-8");ServletOutputStream out = response.getOutputStream();template.write(out);out.flush();template.close();out.close();} catch (IOException e) {e.printStackTrace();}}/*** 下载至本地** @param template*/public static File downloadLocalhost(XWPFTemplate template) {try {File file = new File("D:/简报.docx");FileOutputStream out = new FileOutputStream(file);template.write(out);out.flush();out.close();template.close();return file;} catch (IOException e) {e.printStackTrace();}return null;}
}
效果
获取echarts图片流
Java 使用poi-tl下载Word相关推荐
- java用poi实现对word读取和修改操作
java编程要实现对word的操作没有vb那种编程语言来得容易,得借助一些开源组件,其中就包括jacob.poi等, 而poi应用得最为广泛,对word2003和2007的读和写word操作都十分方便 ...
- Java:POI方式实现Word转html/htm
2019独角兽企业重金招聘Python工程师标准>>> 这里就不对POI做过多的说明了,贴个官网 https://poi.apache.org/,随意看看. 首先搞清楚下要将doc/ ...
- Java使用POI实现导出Word文档
POI官网链接:http://deepoove.com/poi-tl/(方便各位博友后期深入学习) 1.首先导入POM依赖包 <dependency><groupId>com. ...
- Java使用Poi实现导出Word段落以及表格,XWPFParagraph和XWPFRun详解,生成目录,生成折线图、柱状图、饼状图
导出段落 public void exportSummarizeWord(HttpServletResponse response, Integer id) {Summarize summarize ...
- java利用poi模板导出word文件
注意: doc文件的读取,需要导入poi-scratchpad包: docx文件读取,需要导入poi-ooxml包: 一.引入pom <dependency><groupId> ...
- Java 使用poi自定义下载Excel模板
poi自定义Excel模板 设置下拉框以及悬浮提示信息 首先导入maven依赖 <dependency><groupId>org.apache.poi</groupId& ...
- java poi 上传与下载word文件
java编程要实现对word的操作没有vb那种编程语言来得容易,得借助一些开源组件,其中就包括jacob.poi等, 而poi应用得最为广泛,对word2003和2007的读和写word操作都十分方便 ...
- java word上传下载_java poi 上传与下载word文件
java编程要实现对word的操作没有vb那种编程语言来得容易,得借助一些开源组件,其中就包括jacob.poi等, 而poi应用得最为广泛,对word2003和2007的读和写word操作都十分方便 ...
- java poi读取word中附件_java用poi实现对word读取和修改操作
java编程要实现对word的操作没有vb那种编程语言来得容易,得借助一些开源组件,其中就包括jacob.poi等, 而poi应用得最为广泛,对word2003和2007的读和写word操作都十分方便 ...
- java poi_Java POI的学习(一)——Word
前言 (1)POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. .NET的开发人员则可以利用NP ...
最新文章
- 深度学习的时代将结束:25 年 16625 篇论文佐证
- Leetcode:Search Insert Position
- 23设计模式简介笔记
- MAC解决连接服务器,一段时间不操作导致断开连接,卡顿一段时间的问题。
- TypeError系列之:TypeError: only size-1 arrays can be converted to Python scalars
- linux安装java的脚本吗,Linux安装JDK脚本
- 【视频点播最佳实践】使用OSS SDK上传视频到点播
- React Native 交互管理器InteractionManager
- 强化学习推荐系统_推荐人系统:价值调整,强化学习和道德规范
- SnagIt - 官方网站
- Java Wbe 学习心得 day06
- 为什么是“深度”学习而不是宽度?
- pix4d计算机配置速度,实测大疆智图(DJI Terra)与Pix4D,Smart3D正射三维成果对比...
- 憎恨之心最强套装攻略_憎恨之心装备选择 | 手游网游页游攻略大全
- 微信将可开小号!微信内测一个手机可注册俩号
- 40年开店近4万家,麦当劳老大地位恐不保!看看人家这心机!
- vscode源代码管理不显示修改的文件夹
- 微信小程序收起键盘(微信小程序关闭键盘)
- 地形湿度指数(TWI)获取教程
- mesothelioma-弥漫性间皮瘤