手动方法:
Word拆分生成多个文档与合并多个文档,多人协作办公必备技巧_Word联盟
java方法1_Spire.Doc for Java
优点:那是真简单,五行代码搞定。
缺点:付款哦,导包问题独立仓库
Java 合并 Word 文档
<dependency><groupId>e-iceblue</groupId><artifactId>spire.doc</artifactId><version>12.12.21</version></dependency>
import com.spire.doc.*;public class Test{public static void main(String[] args){//获取第一个文档的路径String filePath1 = "D:\template_01.docx";//获取第二个文档的路径String filePath2 = "D:\template_02.docx";//加载第一个文档Document document = new Document(filePath1);//使用insertTextFromFile方法将第二个文档的内容插入到第一个文档document.insertTextFromFile(filePath2, FileFormat.Docx_2013);//保存文档document.saveToFile("D:\template_sum.docx", FileFormat.Docx_2013);}}
java方法2_POI
优点:导包方便
缺点:代码量比第一个多
参考:Easypoi实现单模板生成多页word文档 - zeng1994 - 博客园 【含图片】
下列代码适用于无图片的word,含图片格式看参考推荐
/*** @author ymyx* @version V1.0* @date 2024/3/8 13:45*/
public class Test {public static void main(String[] args) throws Exception {//获取第一个文档的路径String filePath1 = "D:\\template_01.docx";//获取第二个文档的路径String filePath2 = "D:\\template_02.docx";//加载第一个文档XWPFDocument d1 = new XWPFDocument (new FileInputStream(filePath1));XWPFDocument d2 = new XWPFDocument (new FileInputStream(filePath2));
// d1.createParagraph().setPageBreak(true); 本想分页符,结果第二页后仍有,去掉暂时没问题appendBody(d1, d2);//保存文档// 3.将合并后的word文档输出到文件FileOutputStream fos = new FileOutputStream("D:\\template_sum.docx");d1.write(fos);fos.close();}private static void appendBody(XWPFDocument src, XWPFDocument append) throws Exception {CTBody src1 = src.getDocument().getBody();CTBody append2 = append.getDocument().getBody();XmlOptions optionsOuter = new XmlOptions();optionsOuter.setSaveOuter();String appendString = append2.xmlText(optionsOuter);String srcString = src1.xmlText();String prefix = srcString.substring(0,srcString.indexOf(">")+1);String mainPart = srcString.substring(srcString.indexOf(">")+1,srcString.lastIndexOf("<"));String sufix = srcString.substring( srcString.lastIndexOf("<") );String addPart = appendString.substring(appendString.indexOf(">") + 1, appendString.lastIndexOf("<"));//将两个文档的xml内容进行拼接CTBody makeBody = CTBody.Factory.parse(prefix+mainPart+addPart+sufix);src1.set(makeBody);}
}
效果图:
图1
图2
合并后
未尝试文章方法:
Java实现合并两个word文档内容_java_脚本之家