pox.xml文件配置:
<?xml version="1.0" encoding="UTF-8"?> 4.0.0<groupId>com.corey</groupId>
<artifactId>wordtools</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- !! POI依赖包 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.0</version>
</dependency>
<!-- POI依赖包 !!-->
<!--out net begin -->
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>3.3.6</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-ImportXHTML</artifactId>
<version>3.3.6</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-export-fo</artifactId>
<version>3.3.6</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.2</version>
</dependency>
<!--out net end -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<!--只是使用到用spring的工具类-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
多个Word文档合并:
基本思路:Word本身是一个xml文件,通过把不同xml的Xmlns去重合并,添加固定的格式标签,然后把不同xml里面的元素都拼接到一起,组成一个新的xml文件,输出成为一个新的Word。
package magerword;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.xmlbeans.XmlOptions;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody;
import org.springframework.util.ObjectUtils;
import java.io.;
import java.util.;
public class MagerUtil {
/** * 合并多个Word * @param filepaths * @throws Exception */
public static void mergeDoc(String… filepaths) throws Exception {
// 需要配置导出文件路径 记得替换为自己电脑的路径
OutputStream dest = new FileOutputStream(“/Users/corey/Desktop/temp/wordtools/合并文档3.docx”);
List ctBodyList = new ArrayList<>();
List srcDocuments = new ArrayList<>();
for (String filepath : filepaths) {
InputStream in = null;
OPCPackage srcPackage = null;
try {
in = new FileInputStream(filepath);
srcPackage = OPCPackage.open(in);
} catch (Exception e) {
e.printStackTrace();
} finally {
closeStream(in);
}
XWPFDocument srcDocument = new XWPFDocument(srcPackage);
CTBody srcBody = srcDocument.getDocument().getBody();
ctBodyList.add(srcBody);
srcDocuments.add(srcDocument);
}
if (!ObjectUtils.isEmpty(ctBodyList)) {
a