最近项目需要做word文档导出,poi提供了相同模板合并的功能,但是项目中有几个不同的模板。所以决定直接生成单个word然后遍历合并。合并代码如下(新手代码,轻喷。。)

/*** 合并两个文档到新的文件* @param outfile 输出文件* @param file1   要合并的文件1* @param file2  要合并的文件2* @throws Exception*/private void appenddoc(String outfile,String file1,String file2) throws Exception {InputStream in1 = null;InputStream in2 = null;OPCPackage src1Package = null;OPCPackage src2Package = null;OutputStream dest = new FileOutputStream(outfile);try {in1 = new FileInputStream(file1);in2 = new FileInputStream(file2);src1Package = OPCPackage.open(in1);src2Package = OPCPackage.open(in2);} catch (Exception e) {e.printStackTrace();}XWPFDocument src1Document = new XWPFDocument(src1Package);CTBody src1Body = src1Document.getDocument().getBody();XWPFParagraph p = src1Document.createParagraph();//设置分页符p.setPageBreak(true);XWPFDocument src2Document = new XWPFDocument(src2Package);CTBody src2Body = src2Document.getDocument().getBody();appendBody(src1Body, src2Body);src1Document.write(dest);src1Document.close();src2Document.close();in1.close();in2.close();dest.close();
}private  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);}

poi多个模板实现文档合并相关推荐

  1. poi实现多个word文档合并,加超简单分页教程

    1.pom包 <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</art ...

  2. 在ASP.NET Core中如何将各种文档合并为PDF?Aspose快速搞定!

    在各种业务环境中,将各种文档合并为一个PDF是客户最常问的问题之一.例如,假设您的组织有多个应用程序以XPS和PDF生成特定的文档,使用扫描的图像,并且您的用户希望将其中一些文档合并为一个PDF. 本 ...

  3. word文档合并的几种方式

    Word文档合并几种方式 通过com.spire.doc包 具体参考地址:https://www.e-iceblue.cn/spiredocforjavaoperating/merge-word-do ...

  4. 利用Python实现word文档合并

    实现步骤: 1.安装依赖 pip install docx pip install docxcompose pip install pyinstaller // 将py文件打包成exe文件的库 2.编 ...

  5. python合并word_用Python实现Word多文档合并

    通过手动的方式可以很方便的把多个Word文档合并为一个.但如何通过代码实现批量Word的合并呢?操作步骤来了. 1.使用python-docx和docxcompose扩展库 安装扩展库 pip ins ...

  6. (doc, docx)文档合并的三种方法

    Word文档合并几种方式 通过com.spire.doc包 具体参考地址:https://www.e-iceblue.cn/spiredocforjavaoperating/merge-word-do ...

  7. 用Python实现Word多文档合并

    用Python实现Word多文档合并 1.使用python-docx和docxcompose扩展库 2.doc另存为docx 3.发布EXE 4.爬坑 爬坑1:打开rtf或doc时避免弹出 爬坑2:另 ...

  8. 使用poi根据模版生成word文档并转换成PDF文件(可处理doc文件与docx文件版)

    该篇文章是<使用poi根据模版生成word文档并转换成PDF文件>后续解决传入文件为doc文档或docx的处理方法 /*** 根据模板生成word** @param path 模板的路径* ...

  9. C# 实现将多个word文档合并成一个word文档的功能

    https://www.cnblogs.com/zhenzaizai/p/7782748.html 前段时间项目上遇到这么一个需求,需要将多个OCR识别的word文档合并成一个,于是就在网上找了找,自 ...

最新文章

  1. 你应该关注web标准的真正原因
  2. pandas使用pad函数向dataframe特定数据列的每个字符串添加前置(前缀)补齐字符或者字符串、向所有字符串的左侧填充、直到宽度达到指定要求(left padding)
  3. VVOL、VASA — 为什么如此重要
  4. multipart/form-data和application/x-www-form-urlencoded的区别
  5. Spring 5.1.13 和 Spring Boot 2.2.3 发布
  6. AngularJS优缺点、使用场景
  7. 如何设计一门语言(二)——什么是坑(b)
  8. 文件系统之-JAVA Sftp远程操作:
  9. NET问答: JS 中有 LINQ SelectMany 方法的等价实现吗?
  10. 设置mysql为utf-8_如何设置mysql数据库为utf-8编码
  11. 测试与 debug 心得
  12. (一)CGAL库应用:指定平面切割模型并用openGL显示该层面轮廓
  13. 华为会强迫升级鸿蒙,华为手机升级鸿蒙系统好用吗
  14. 孤独求败:美国海军邀黑客“黑掉军舰”
  15. 修改element-ui默认的开关样式
  16. C++ new 动态内存 对象初始化
  17. eovs实训报告总结心得_实训心得体会(精选15篇)
  18. 用计算机写作文的好处,用计算机写作文.ppt
  19. 中国工业制造RFID市场竞争力排名分析与投资战略规划研究报告2022-2028年版
  20. FastASR离线语音识别库

热门文章

  1. uni-app开发的h5,使用微信授权登录(前置条件+具体代码)
  2. 2017第17届CBME中国孕婴童展、童装展会刊(参展商名录)
  3. wifi设备名称android,Android设置WiFi设备名解析
  4. C语言低配版扫雷游戏
  5. 以静制动的TensorFlow Fold
  6. 【LeetCode】 贴纸拼词(动态规划)
  7. 系统业务逻辑书籍_企业应该如何建立自己的分销系统和分销团队
  8. aspose-words更新域/目录(页码不准确问题)
  9. 车载网络测试 - UDS诊断篇 - 诊断服务$10
  10. uoj311 【UNR #2】积劳成疾