JAVA使用POI对Word docx模板文件替换数据工具类

您所在的位置:网站首页 java生成word模板工具 JAVA使用POI对Word docx模板文件替换数据工具类

JAVA使用POI对Word docx模板文件替换数据工具类

2023-03-19 09:26| 来源: 网络整理| 查看: 265

收藏,保存,需要用到的时候不会找不到

word模板文件参考下面:

Map params = new HashMap(); params.put("name", name);//公司名称 params.put("beginDate", beginDate);//开始时间 params.put("endDate", endDate);//结束时间 params.put("newDate", new SimpleDateFormat("yyyy年MM月dd日").format(new Date()));//当前时间 // 模板word文件真实路径 String wordSrcPath = fileRealPath + "/" + "template.docx"; // 使用该办件编号作为文件名称 String wordDestPath = fileRealPath + "/" + "new" + caseCode + ".docx"; POIUtil.templateWrite(wordSrcPath, wordDestPath, params);

package com.qmwxw.util; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.poi.xwpf.usermodel.UnderlinePatterns; 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文档工具类 * * @author wangyj * @date 2020-03-03 * */ public class POIUtil { /** * 用一个docx文档作为模板,然后替换其中的内容,再写入目标文档中。 * @throws Exception */ public static void templateWrite(String filePath,String outFilePath,Map params) throws Exception { InputStream is = new FileInputStream(filePath); XWPFDocument doc = new XWPFDocument(is); //替换段落里面的变量 replaceInPara(doc, params); //替换表格里面的变量 replaceInTable(doc, params); OutputStream os = new FileOutputStream(outFilePath); doc.write(os); close(os); close(is); } /** * 替换段落里面的变量 * @param doc 要替换的文档 * @param params 参数 */ private static void replaceInPara(XWPFDocument doc, Map params) { Iterator iterator = doc.getParagraphsIterator(); XWPFParagraph para; while (iterator.hasNext()) { para = iterator.next(); replaceInPara(para, params); } } /** * 替换段落里面的变量 * * @param para 要替换的段落 * @param params 参数 */ private static void replaceInPara(XWPFParagraph para, Map params) { List runs; Matcher matcher; String runText = ""; int fontSize = 0; UnderlinePatterns underlinePatterns = null; if (matcher(para.getParagraphText()).find()) { runs = para.getRuns(); if (runs.size() > 0) { int j = runs.size(); for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3