精华内容
下载资源
问答
  • 使用aspose-words.jar 实现word文件合并。开源版,下载后可一直使用 1、支持word文档内容部分替换 2、支持word内容合并,包含页眉、页脚、批注等信息 3、doc、docx文件均可支持 4、轻量级,引入jar 包即可引用
  • 实现将多个word文件合并成一个word文档,整理两种方法,所需资料比较齐全,已经过测试,可直接下载使用。
  • 使用Java合并多个word文档

    万次阅读 2018-08-24 15:11:12
    此案例需要用到jacob 下载地址... 解压好的jacob放入如下图中 import java.io.File; import java.util.*; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispa...

    此案例需要用到jacob   下载地址 https://download.csdn.net/download/panhaigang123/10599733

    将解压好的jacob放入如下图中

     

     

     

     

    import java.io.File;
    import java.util.*;
    
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    
    /**
     * 合并多个word文档内容
     * @author Administrator
     *
     */
    public class HbWordData {
    	
    	/**
    	 * @param fileList 合并多个word文档内容
    	 * @param savepaths 合并保存新文档
    	 */
    	public static void mergeWordDataDoc(List<String> fileList, String savepaths) {  
            if (fileList.size() == 0 || fileList == null) {  
                return;  
            }
            // 判断文件是否存在
            if( new File(savepaths).exists() ){
            	try {
            		new File(savepaths).createNewFile();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
            }else{
            	try {
            		new File(savepaths).delete();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
            }
            //打开word  
            ActiveXComponent app = new ActiveXComponent("Word.Application"); 
            try {  
                // 设置word不可见  
                app.setProperty("Visible", new Variant(false));  
                //获得documents对象  
                Object docs = app.getProperty("Documents").toDispatch();  
                //打开第一个文件  
                Object doc = Dispatch  
                    .invoke(  
                            (Dispatch) docs,  
                            "Open",  
                            Dispatch.Method,  
                            new Object[] { (String) fileList.get(0),  
                                    new Variant(false), new Variant(true) },  
                            new int[3]).toDispatch();  
                //追加文件  
                for (int i = 1; i < fileList.size(); i++) {  
                    Dispatch.invoke(app.getProperty("Selection").toDispatch(),  
                        "insertFile", Dispatch.Method, new Object[] {  
                                (String) fileList.get(i), "",  
                                new Variant(false), new Variant(false),  
                                new Variant(false) }, new int[3]);  
                }  
                //保存新的word文件  
                Dispatch.invoke((Dispatch) doc, "SaveAs", Dispatch.Method,  
                    new Object[] { savepaths, new Variant(1) }, new int[3]);  
                Variant f = new Variant(false);  
                Dispatch.call((Dispatch) doc, "Close", f);  
            } catch (Exception e) {  
                throw new RuntimeException("合并word文件出错.原因:" + e);  
            } finally {  
                app.invoke("Quit", new Variant[] {});  
            }  
        } 
    
    	public static void main(String[] args) {
    		// 需要放到程序中可以运行;
    		List list  = new ArrayList();  
            String file1= "D:\\test\\11.doc";  
            String file2= "D:\\test\\22.doc";
            String file3= "D:\\test\\test.doc"; 
            list.add(file1);  
            list.add(file2);
            list.add(file3);
            mergeWordDataDoc(list,"D:\\test\\n.doc"); 
            
            System.out.println("success");
            
    	}
    	
    }
    

     

    展开全文
  • java运用poi操作word,替换word中的占位符填充数据,并将多个word合并成一个word,附件是java代码和相关jar包,以及测试模板,需要注意是,只适用2007以上的word
  • 将多个word路径下的word合并成一个word 第一个路径合并后在第一个位置,最后一个路径合并后在最后
  • 展开全部国内有免费32313133353236313431303231363533e78988e69d8331333431356133的jar(Free Spire.Doc for Java),可用来合并Word文档,分两种合并方法:1.合并的内容新起一页;2.合并的内容承接上文段落。1.新起...

    展开全部

    国内有个免费32313133353236313431303231363533e78988e69d8331333431356133的jar(Free Spire.Doc for Java),可用来合并Word文档,分两种合并方法:1.合并的内容新起一页;2.合并的内容承接上文段落。

    1.新起一页合并import com.spire.doc.Document;

    import com.spire.doc.FileFormat;

    public class MergeWordDocument {

    public static void main(String[] args){

    //获取第一个文档的路径

    String filePath1 = "merge1.docx";

    //获取第二个文档的路径

    String filePath2 = "merge2.docx";

    //加载第一个文档

    Document document = new Document(filePath1);

    //使用insertTextFromFile方法将第二个文档的内容插入到第一个文档

    document.insertTextFromFile(filePath2, FileFormat.Docx_2013);

    //保存文档

    document.saveToFile("Output.docx", FileFormat.Docx_2013);

    }

    }

    2.承接上文段落合并import com.spire.doc.Document;

    import com.spire.doc.DocumentObject;

    import com.spire.doc.FileFormat;

    import com.spire.doc.Section;

    public class MergeWordDocument {

    public static void main(String[] args){

    //获取第一个文档的路径

    String filePath1 = "merge1.docx";

    //获取第二个文档的路径

    String filePath2 = "merge2.docx";

    //加载第一个文档

    Document document1 = new Document(filePath1);

    //加载第二个文档

    Document document2 = new Document(filePath2);

    //获取第一个文档的最后一个section

    Section lastSection = document1.getLastSection();

    //将第二个文档的段落作为新的段落添加到第一个文档的最后一个section

    for (Section section:(Iterable )document2.getSections()) {

    for (DocumentObject obj:(Iterable )section.getBody().getChildObjects()

    ) {

    lastSection.getBody().getChildObjects().add(obj.deepClone());

    }

    }

    //保存文档

    document1.saveToFile("Output.docx", FileFormat.Docx_2013);

    }

    }

    可参考原文。

    展开全文
  • 将多个后缀为.docx文档合并成一个文档,并实现分页,避免因文档过多,打开过于麻烦
  • 资源描述了poi对于word的操作,poi合并word文档,poi设置word页码,内含maven依赖文档和完整代码,是一完整工程,打开即可用
  • java实现将多个word文档合并

    千次阅读 2019-10-12 14:41:35
    1、使用OPCPackage每一个文档打开并且存储起来 2、其转成字符串合并 3、再字符串转换成对应得XWPFDocument 对象写出即可 代码如下: /** * 合并docx文件 * * @param srcDocxs 需要合并的目标docx文件 * @param...

    大概流程是:

    1、使用OPCPackage将每一个文档打开并且存储起来

    2、将其转成字符串合并

    3、再将字符串转换成对应得XWPFDocument 对象写出即可

    代码如下:

    /**
         * 合并docx文件
         *
         * @param srcDocxs 需要合并的目标docx文件
         * @param destDocx 合并后的docx输出文件
         */
        public static void mergeDoc(List<String> srcDocxs, String destDocx) {
            OutputStream dest = null;
            List<OPCPackage> opcpList = new ArrayList<OPCPackage>();
            int length = null == srcDocxs ? 0 : srcDocxs.size();
            /**
             * 循环获取每个docx文件的OPCPackage对象
             */
            for (int i = 0; i < length; i++) {
                String doc = srcDocxs.get(i);
                OPCPackage srcPackage = null;
                try {
                    srcPackage = OPCPackage.open(doc);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                if (null != srcPackage) {
                    opcpList.add(srcPackage);
                }
            }
            int opcpSize = opcpList.size();
            //获取的OPCPackage对象大于0时,执行合并操作
            if (opcpSize > 0) {
                try {
                    dest = new FileOutputStream(destDocx);
                    XWPFDocument src1Document = new XWPFDocument(opcpList.get(0));
                    CTBody src1Body = src1Document.getDocument().getBody();
                    //OPCPackage大于1的部分执行合并操作
                    if (opcpSize > 1) {
                        for (int i = 1; i < opcpSize; i++) {
                            OPCPackage src2Package = opcpList.get(i);
                            XWPFDocument src2Document = new XWPFDocument(src2Package);
                            CTBody src2Body = src2Document.getDocument().getBody();
                            appendBody(src1Body, src2Body);
                        }
                    }
                    //将合并的文档写入目标文件中
                    src1Document.write(dest);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    //关闭流
                    IOUtils.closeQuietly(dest);
                }
            }
        }
    
        /**
         * 合并文档内容
         *
         * @param src    目标文档
         * @param append 要合并的文档
         * @throws Exception
         */
        private static void appendBody(CTBody src, CTBody append) throws Exception {
            XmlOptions optionsOuter = new XmlOptions();
            optionsOuter.setSaveOuter();
            String appendString = append.xmlText(optionsOuter);
            //替换word中得空行、根据自己需求来选择需不需要
            //word文档其实是由xml文件合成得,一下替换得是作者对应得xml文件中得空行标签
            appendString = appendString.replaceAll("<w:p><w:pPr><w:spacing w:line=\\\"360\\\" w:lineRule=\\\"auto\\\"/><w:jc w:val=\\\"right\\\"/><w:rPr><w:rFonts w:ascii=\\\"仿宋\\\" w:eastAsia=\\\"仿宋\\\" w:hAnsi=\\\"仿宋\\\"/><w:sz w:val=\\\"24\\\"/></w:rPr></w:pPr></w:p>","");
            appendString = appendString.replaceAll("<w:p><w:pPr xsi:nil=\\\"true\\\" xmlns:xsi=\\\"xsi\\\"/></w:p>","");
            appendString = appendString.replaceAll("<w:p><w:pPr><w:ind w:firstLineChars=\\\"200\\\" w:firstLine=\\\"600\\\"/><w:jc w:val=\\\"right\\\"/><w:rPr><w:rFonts w:ascii=\\\"仿宋\\\" w:eastAsia=\\\"仿宋\\\" w:hAnsi=\\\"仿宋\\\"/><w:sz w:val=\\\"30\\\"/><w:szCs w:val=\\\"30\\\"/></w:rPr></w:pPr></w:p>","");
            appendString = appendString.replaceAll("<w:spacing w:line=\\\"360\\\" w:lineRule=\\\"auto\\\"/>","");;
            String srcString = src.xmlText();
            srcString = srcString.replaceAll("<w:p><w:pPr><w:ind w:firstLineChars=\\\"200\\\" w:firstLine=\\\"600\\\"/><w:jc w:val=\\\"right\\\"/><w:rPr><w:rFonts w:ascii=\\\"仿宋\\\" w:eastAsia=\\\"仿宋\\\" w:hAnsi=\\\"仿宋\\\"/><w:sz w:val=\\\"30\\\"/><w:szCs w:val=\\\"30\\\"/></w:rPr></w:pPr></w:p>","");
            srcString = srcString.replaceAll("<w:spacing w:line=\\\"360\\\" w:lineRule=\\\"auto\\\"/>","");
            srcString = srcString.replaceAll("<w:p><w:pPr><w:spacing w:line=\\\"360\\\" w:lineRule=\\\"auto\\\"/><w:jc w:val=\\\"right\\\"/><w:rPr><w:rFonts w:ascii=\\\"仿宋\\\" w:eastAsia=\\\"仿宋\\\" w:hAnsi=\\\"仿宋\\\"/><w:sz w:val=\\\"24\\\"/></w:rPr></w:pPr></w:p>","");
            srcString = srcString.replaceAll("<w:p><w:pPr xsi:nil=\\\"true\\\" xmlns:xsi=\\\"xsi\\\"/></w:p>","");
            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("<"));
            CTBody makeBody = CTBody.Factory.parse(prefix + mainPart + addPart
                    + sufix);
            src.set(makeBody);
        }
    
    //测试代码如下:
    
     public static void main(String[] args){
            List<String> srcs = new ArrayList<>();
            for(int i = 0 ; i <= 23 ; i++){
                if(i != 1) {
                    srcs.add("E:\\workIreport\\" + i + ".doc");
                }
            }
            mergeDoc(srcs, "E:\\workIreport\\test.doc");
        }
    
    展开全文
  • Java POI合并多个word文件

    万次阅读 热门讨论 2018-09-17 14:29:04
    对于多个docx文件,可以使用POI合并生成一个组合的docx文件,这个方法分享给大家。不过对于docx文件中存在有图片的文档,此种方法没有做处理,需要的朋友可以自己扩展一下。 import java.io.FileNotFoundException...

    对于多个docx文件,可以使用POI合并生成一个组合的docx文件,这个方法分享给大家。不过对于docx文件中存在有图片的文档,此种方法没有做处理,需要的朋友可以自己扩展一下。

    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.commons.io.IOUtils;
    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;
    /**
     * 合并两个docx文档方法,对文档包含的图片无效
     * @author laitong.ma
     * @date 2018年9月17日
     */
    public class POIMergeDocUtil {
    	public static void main(String[] args) throws Exception {
    		
    		String[] srcDocxs = {"e:\\waxz_1.docx","e:\\waxz_2.docx","e:\\waxz_3.docx"};
    		String destDocx = "e:\\wzxz_new.docx";
    		mergeDoc(srcDocxs, destDocx);
    	}
    	/**
    	 * 合并docx文件
    	 * @param srcDocxs 需要合并的目标docx文件
    	 * @param destDocx 合并后的docx输出文件
    	 */
    	public static void mergeDoc(String[] srcDocxs,String destDocx){
    		
    		OutputStream dest = null;
    		List<OPCPackage> opcpList = new ArrayList<OPCPackage>();
    		int length = null == srcDocxs ? 0 : srcDocxs.length;
    		/**
    		 * 循环获取每个docx文件的OPCPackage对象
    		 */
    		for (int i = 0; i < length; i++) {
    			String doc = srcDocxs[i];
    			OPCPackage srcPackage =  null;
    			try {
    				srcPackage = OPCPackage.open(doc);
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    			if(null != srcPackage){
    				opcpList.add(srcPackage);
    			}
    		}
    		
    		int opcpSize = opcpList.size();
    		//获取的OPCPackage对象大于0时,执行合并操作
    		if(opcpSize > 0){
    			try {
    				dest = new FileOutputStream(destDocx);
    				XWPFDocument src1Document = new XWPFDocument(opcpList.get(0));
    				CTBody src1Body = src1Document.getDocument().getBody();
    				//OPCPackage大于1的部分执行合并操作
    				if(opcpSize > 1){
    					for (int i = 1; i < opcpSize; i++) {
    						OPCPackage src2Package = opcpList.get(i);
    						XWPFDocument src2Document = new XWPFDocument(src2Package);
    						CTBody src2Body = src2Document.getDocument().getBody();
    						appendBody(src1Body, src2Body);
    					}
    				}
    				//将合并的文档写入目标文件中
    				src1Document.write(dest);
    			} catch (FileNotFoundException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}finally{
                    //注释掉以下部分,去除影响目标文件srcDocxs。
    				/*for (OPCPackage opcPackage : opcpList) {
    					if(null != opcPackage){
    						try {
    							opcPackage.close();
    						} catch (IOException e) {
    							e.printStackTrace();
    						}
    					}
    				}*/
    				//关闭流
    				IOUtils.closeQuietly(dest);
    			}
    		}
    		
    		
    	}
    	
    	/**
    	 * 合并文档内容
    	 * @param src 目标文档
    	 * @param append 要合并的文档
    	 * @throws Exception
    	 */
    	private static void appendBody(CTBody src, CTBody append) throws Exception {
    		XmlOptions optionsOuter = new XmlOptions();
    		optionsOuter.setSaveOuter();
    		String appendString = append.xmlText(optionsOuter);
    		String srcString = src.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("<"));
    		CTBody makeBody = CTBody.Factory.parse(prefix + mainPart + addPart
    				+ sufix);
    		src.set(makeBody);
    	}

     

    展开全文
  • 多个word文档合并为一个文档 Java实现 不用额外新建一个空文档,适合需要不断往一个文档中添加其他文档的情况。适合每页格式固定,添加文件新起一页的情况。可进行测试。 package could.com.hanwen.govapi.Test; ...
  • *@parampathList 所有需要合并文档的绝对路径*@paramsavePath 一路径,但是没有文件的后缀,之后进行拼接。*@return状态,是否保存成功*/public static boolean mergeWordToPdf(ListpathList, String savePath){...
  • org.docx4j/docx4j/ Maven依赖写法Maven下载jar包org.docx4jdocx4j3.1.0实例代码:package ...import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOExcept...
  • POI-TL合并多个Word文档

    2021-06-27 23:13:49
    POI-TL合并多个Word文档
  • Java-合并多个文档到一个文档Java程序-免费下载
  • 展开全部Java可以使用这开源e69da5e6ba903231313335323631343130323136353331333337613163框架,对word进行读取合并等操作,Apache POI是一开源的利用Java读写Excel、WORD等微软OLE2组件文档的项目。最新的3.5...
  • import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import ...
  • 相同格式的excel进行合并,或者对多个word文档进行合并,word文档包含图片。
  • 本文实例为大家分享了Java实现多个文档合并输出到一个文档的具体代码,供大家参考,具体内容如下方法:Java NIOpackage First;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream...
  • 使用poi将多个word合并

    2019-03-25 11:10:44
    使用poi将多个word合并,本方法经过测试,目前只支持多个doc格式合并成一个doc,如果是docx格式生成后打不开
  • java实现word合并,jdk版本1.7,直接导入eclipse中即可。基于docx4j3.3.3实现。内含所有jar包,MargeDoc中含有主方法
  • 1 packagecom.kwm.referencemark....23 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileOutputStream;6 importjava.io.OutputStream;7 importjava.util.ArrayList;8 importjava.util.Ha...
  • Java 合并Word文档

    2021-02-28 11:33:20
    在日常工作中,难免会遇到需要将多个Word文档合并到一个文档中,对其进行重新整理的情况,为了能帮助大家高效快速的完成这个操作,接下来本文就将介绍两种在Java程序中合并Word文档的方法。方法一:如果需要被合并的...
  • java多个word文件压缩并导出zip

    千次阅读 2020-05-06 12:27:12
    具体导出word功能和下图的downLoadFile方法,请参考:...下面主要说的是压缩zip文件。 /** * 导出全部简历 * * @param response * @return * @throws Exceptio...
  • word合并全家桶,包括横页和竖页兼容合并,里面包含使用文件格式转换,rtf转换为标准的word格式或者其他类型转换,jacob合并word案例及jar包,docx4j合并word案例及jar包,还有poi合并,以及Plutext-Enterprise-3.3.0.6...
  • 前言: 有时我们的系统中有这样的需求:用户将文件上传到服务器,然后需要我们...对于我们开发web系统的开发人员来说,只是需要将word文件合并或者其他一些简单操作,就要学习如此的技术,未免学习成本太大。 ...
  • 可直接下载附件运行即可,执行文件是WordUtil4.java。附件的jar包以尽量放进去了,若有运行不了,请自行找寻并下载相关的jar包
  • Java 合并多个PDF文档

    2021-02-12 10:09:24
    import java.io.*;public class Merge2 {public static void main(String[] args) throws Exception {String outputFile = "output/mergeFilesByStream.pdf";FileInputStream stream1 = new ...
  • java通过aspose.words个word文档合并

    千次阅读 2020-06-05 12:05:08
    参考文章:... 1:提供一个jar包的下载链接 ...提取码:q9cx 2:代码如下: ...public static void main(String[] args) { //sohuyepath:第一个word文件路径 //xuyepath:第二个wo..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,422
精华内容 43,368
关键字:

java合并多个word文档

java 订阅