zoukankan      html  css  js  c++  java
  • java poi 合并 word文档

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;

    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;

    public class MergeDoc {
    public static void main (String[] args) throws Exception {
    InputStream in1 = null;
    InputStream in2 = null;
    OPCPackage src1Package = null;
    OPCPackage src2Package = null;

    OutputStream dest = new FileOutputStream("d:\dest.docx");
    try {
    in1 = new FileInputStream("d:\tmp.docx");
    in2 = new FileInputStream("d:\tmp2.docx");
    src1Package = OPCPackage.open(in1);
    src2Package = OPCPackage.open(in2);
    } catch (Exception e) {
    e.printStackTrace();
    }

    XWPFDocument src1Document = new XWPFDocument(src1Package);
    CTBody src1Body = src1Document.getDocument().getBody();
    XWPFDocument src2Document = new XWPFDocument(src2Package);
    CTBody src2Body = src2Document.getDocument().getBody();
    appendBody(src1Body, src2Body);
    src1Document.write(dest);

    }

    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);
    }

    }

  • 相关阅读:
    Scilab5.5.2 在Centos5.11下binary安装(注:不是源码编译安装)
    《DSP using MATLAB》Problem 9.5
    Java 出现警告 不能读取AppletViewer的属性文件
    《DSP using MATLAB》Problem 9.4
    《DSP using MATLAB》Problem 9.2
    《DSP using MATLAB》Problem 8.46
    《DSP using MATLAB》Problem 8.45
    风力摆?这是不是太简单了点
    树莓派:基于物联网做的指纹打卡器
    Python之面向对象(一)
  • 原文地址:https://www.cnblogs.com/tianyublog/p/6957953.html
Copyright © 2011-2022 走看看