1、Word生成

package com.tepper.common.util;import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;import org.apache.poi.POIXMLDocument;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;/*** Word写入器* * DocWriter* * @author 潘广伟* @Email p_3er@qq.com* @Date 2015-3-25 上午8:53:17* * @version 1.0.0* */
public class DocWriter {/*** 根据模板生成word文档* createByTemplate* * @param srcPath* @param map* @return * @exception * @since  1.0.0*/public static XWPFDocument createByTemplate(String srcPath,Map<String, String> map) {XWPFDocument document = null;try {document = new XWPFDocument(POIXMLDocument.openPackage(srcPath));Iterator it = document.getTablesIterator();while (it.hasNext()) {XWPFTable table = (XWPFTable) it.next();int rcount = table.getNumberOfRows();for (int i = 0; i < rcount; i++) {XWPFTableRow row = table.getRow(i);List<XWPFTableCell> cells = row.getTableCells();for (XWPFTableCell cell : cells) {for (Entry<String, String> e : map.entrySet()) {if (cell.getText().equals(e.getKey())) {/*** 清空原来的字符*/cell.removeParagraph(0);/*** 新的字符及样式*/XWPFParagraph paragraph = new XWPFParagraph(cell.getCTTc().addNewP(), cell);paragraph.setAlignment(ParagraphAlignment.LEFT);XWPFRun run = paragraph.createRun();run.setFontSize(14);run.setFontFamily("宋体");run.setText(e.getValue());}}}}}} catch (Exception e) {e.printStackTrace();}return document;}
}

2、通过response导出

Map<String, String> map = new HashMap<String, String>();map.put("${invoiceaccepter}", request.getParameter("invoiceaccepter"));map.put("${amountPrice}",request.getParameter("amountPrice")+"万");map.put("${invoicenum}","NO."+request.getParameter("invoicenum"));map.put("${count}",request.getParameter("count"));map.put("${invoiceTime}",request.getParameter("invoiceTime"));String srcPath = request.getSession().getServletContext().getRealPath("/") + "print_temp/invoice.docx";XWPFDocument document =  DocWriter.createByTemplate(srcPath, map);response.setHeader("Content-disposition", "attachment;filename=ReturnReceipt.doc");  document.write(response.getOutputStream());

POI 使用替换字符方式进行模板生成word相关推荐

  1. 使用java Apache poi 根据word模板生成word报表

    使用java Apache poi 根据word模板生成word报表 使用poi读取word模板,替换word中的{text}标签,并根据自定义标签循环生成表格或表格中的行. 代码示例下载:https ...

  2. Java使用POI通过模板生成Word

    Java使用POI通过模板生成Word 前言 最近工作需要用到,所以记录下来以便查找. 一.概述 POI读写word使用的核心类是XWPFDocument.一个XWPFDocument代表一个docx ...

  3. apache poi使用例_使用java Apache poi 根据word模板生成word报表例子

    [实例简介] 使用java Apache poi 根据word模板生成word报表 仅支持docx格式的word文件,大概是word2010及以后版本,doc格式不支持. 使用说明:https://b ...

  4. 使用word模板生成word文档的各类方案

    使用word模板生成word文档的各类方案 生成word的各种方案 word另存xml进行后续处理 2003版本word(.doc)的xml处理并生成word 2007版本word(.docx)的xm ...

  5. java手动/按模板生成word与excel

    目录 一.前言 二.生成word 1.使用Apache poi手动生成一个word (1)导入依赖 (2)手动生成一个包含表格的word 2.使用Apache poi 按模板生成一个简单的word ( ...

  6. 根据word模板生成word和PDF

    根据word模板生成word和PDF 需求:有一个固定的合同模板,在vue前台填写指定的信息,替换合同模板指定的内容 我们使用的默认模板内容如图: 我们在前端填写的字段就是合同名称.项目名称和项目金额 ...

  7. JAVA实现模板word文档导入,Java依据word模板生成word文档之后台解析和实现及部分代码(一)...

    Java根据word模板生成word文档之后台解析和实现及部分代码(一) 后台主要工作是解析XML定义的标签文件,并获取到数据集,放入到Map中,然后调用Jacob.jar中提供的相关方法来实现替换. ...

  8. freemarker根据模板生成word文档,换行

    freemarker根据模板生成word文档,其它地方已经说的非常清除了,在此简单再说以下. 1.制作word模板,另存为xml文件.在此我另存为的时windows xml,它和windows 200 ...

  9. Android 使用模板生成Word文档,支持手机直接查看word

    最近在项目工作中,碰到一个很棘手的需求,说是要在手机端根据模板生成word文档,而且不借助第三方的软件可以查看word文档,一开始听这个需求差不多蒙了,这要怎么做,为什么不把生成word文档这个工作放 ...

最新文章

  1. 0基础学怎么学习python
  2. 百练OJ:2742:统计字符数
  3. Comparable接口和Comparator接口的比较
  4. ios 侧滑返回停顿_iOS push侧滑返回功能实现方法
  5. Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现session共享(一)
  6. python缩进教学_Python缩进和选择学习
  7. 什么是IOC,IOC的优缺点及IOC的应用
  8. 第五篇:白话tornado源码之褪去模板的外衣
  9. 使用fileupload实现文件上传
  10. 【SpringBoot_ANNOTATIONS】自动装配 03 方法 构造器位置的自动装配
  11. 因子分析模型 - 因子分析法原理与代码实现 -(Python,R)
  12. 4.2 Branching Strategies
  13. 学生选课系统功能分析
  14. Python之科赫曲线绘制
  15. Unreal 4.24毛发
  16. Resharper快捷键使用
  17. C语言——typedef的用法
  18. 微营销:数字世界的第二张面孔
  19. 没有同理心_在设计上超越同理心
  20. K-S Hamiltonian以及自洽计算形式

热门文章

  1. java matlab 矩阵_如何在MATLAB中将函数应用于矩阵的每一行/列?
  2. 快速排名系统询火星推荐_搜狗网站快速排名系统 - 新站权重如何快速提升
  3. mysql远程无法登陆_无法远程登陆MySQL数据库几种解决办法
  4. 显示部分x_Linux 黑话解释:什么是显示服务器,用来做什么? | Linux 中国
  5. oracle号码段拆开,知道号段起止,如何选择该号段内的所有号码?
  6. 远程服务器系统管理,如何远程管理服务器系统(转载)
  7. springcloud alibab + sentinel1.8.1集成文档
  8. 【Linux】31. ffmpeg常用命令
  9. 【Linux】29.扫描本机同一局域网内 某端口开启 的主机
  10. Caffe学习系列(3):视觉层(Vision Layers)及参数