资源简介
java运用poi操作word,替换word中的占位符填充数据,并将多个word合并成一个word,附件是java代码和相关jar包,以及测试模板,需要注意是,只适用2007以上的word
代码片段和文件信息
package com.cn.gwssi.demo;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Set;
import org.apache.commons.io.IOUtils;
import org.apache.poi.POIxmlDocument;
import org.apache.poi.openxml4j.opc.OPCPackage;
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;
import org.apache.xmlbeans.xmlOptions;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody;
/**
* 对word模板填充数据,并合并成一个word
*/
public class POIMergeDocUtil {
public static void main(String[] args) throws Exception {
List paths = new ArrayList();
paths.add(“d:\\1.docx“);
paths.add(“d:\\2.docx“);
paths.add(“d:\\3.docx“);
Map param = new HashMap();
param.put(“kprq“ “2018-05-09“);
param.put(“skrq“ “2018-05-01“);
param.put(“fpbm“ “Bluesky 25-18-R001“);
String destDocx = “d:\\test.docx“;
exportWordUtils(pathsparamdestDocx);
System.out.println(“执行成功=====“);
}
/**
* 对多个word模板填充数据,并合并成一个word输出
* @param paths
* @param param
* @param destDocx
* @throws Exception
*/
public static void exportWordUtils(List pathsMap paramString destDocx) throws Exception{
OutputStream dest = null;
List xwpfDocuments = new ArrayList();
//循环向word填充数据
for (String path : paths) {
XWPFDocument xwpfDocument = generateWord(parampath);
xwpfDocuments.add(xwpfDocument);
}
//合并word
XWPFDocument xwpfDocument = xwpfDocuments.get(0);
for (int i = 1; i < xwpfDocuments.size(); i++) {
xwpfDocument=mergeWord(xwpfDocumentxwpfDocuments.get(i));
}
//输出word
dest = new FileOutputStream(destDocx);
xwpfDocument.write(dest);
IOUtils.closeQuietly(dest);
}
/**
* 替换word占位符的内容
* @param param
* @param filePath
* @return
*/
public static XWPFDocument generateWord(Map param String filePath) {
XWPFDocument doc = null;
try {
doc = new XWPFDocument(POIxmlDocument.openPackage(filePath));
if (param != null && param.size() > 0){
//处理段落
replaceInPara(doc param);
//替换表格里面的变量
replaceInTable(doc param);
}
} catch (Exception e) {
e.printStackTrace();
}
return doc;
}
/**
* 遍历word段落信息
* @param doc 要替换的文档
* @param params 参数
*/
private stati
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 954 2019-01-15 14:55 poitest\.classpath
文件 383 2019-01-14 15:55 poitest\.project
文件 629 2019-01-14 16:11 poitest\.settings\org.eclipse.jdt.core.prefs
文件 10706 2019-01-15 18:39 poitest\bin\com\cn\gwssi\demo\POIMergeDocUtil.class
文件 109043 2019-01-14 17:17 poitest\lib\commons-io-1.4.jar
文件 2619573 2019-01-14 15:58 poitest\lib\poi-3.16-beta2.jar
文件 369259 2019-01-14 15:58 poitest\lib\poi-examples-3.16-beta2.jar
文件 31065 2019-01-14 15:58 poitest\lib\poi-excelant-3.16-beta2.jar
文件 1384781 2019-01-14 15:58 poitest\lib\poi-ooxm
文件 5873588 2019-01-14 15:58 poitest\lib\poi-ooxm
文件 1367466 2019-01-14 15:58 poitest\lib\poi-scratchpad-3.16-beta2.jar
文件 73441 2019-01-14 16:09 poitest\lib\poi-tl-1.3.0.jar
文件 8870 2019-01-15 14:54 poitest\lib\slf4j1.7.7.jar
文件 2666695 2019-01-14 17:15 poitest\lib\xm
文件 10737 2019-01-15 18:39 poitest\src\com\cn\gwssi\demo\POIMergeDocUtil.java
文件 14655 2019-01-15 19:49 test.docx
文件 15634 2019-01-15 19:41 1.docx
文件 15261 2019-01-15 19:48 2.docx
文件 15248 2019-01-15 19:48 3.docx
- 上一篇:Simulate_2.0.apk
- 下一篇:Android 视频直播Demo
相关资源
- aspose-words-19.3-jdk17.jar
- tess-two训练文件eng.traineddata
- ueditor.zip
-
android fr
amework(5.0和6.0)编译出来的 - Aspose.words Aspose.cells Aspose.slides 破解版
-
不同版本类型的fr
ameworks.jar -
spring-fr
amework-4.2.4 所有jar包和xsd文件 - aspose实现word转pdf
-
Android Audio fr
amework - 通过java后台代码实现修改word内容将
- Android 使用模板生成Word文档,支持手
- workspace_test.rar
- aspose-words-20.1-jdk17.jar 去水印版
- android7.0源碼framwork jar
- World Wind Java三维地理信息系统开发技
- Woosim蓝牙打印机Android实现
- World Wind Java三维地理信息系统开发技
- poi3.17和poi4.0包含converter.jar
- word、excel、ppt转pdf,spring boot小demo
- java读取doc、docx文件,java pdf转word
- java实现word在线编辑及流转
- D:\\AndroidWorkplace\\GoogleGeofence.zip
- word转pdf两种方法的jar包和代码包
-
Spring-fr
amework 所有的jar包.rar - 新闻管理系统-jsp大作业-java大作业-
- aspose.word+cells+slides-20.4 - c.jar
- docx4j生成word文档
- java实现多个docx文档合并基于docx4j
- android上文字识别Tess-two编译可用的.
- WebWork简单
评论
共有 条评论