亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java 使用POI合并兩個word文檔

瀏覽:115日期:2022-05-19 16:03:46
java POI合并兩個word文檔有需要的可以將主函數中寫死的地方改為一個List

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.poi.xwpf.usermodel.XWPFParagraph;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('dest.docx');try { in1 = new FileInputStream('/Users/liuyahui/test.docx'); in2 = new FileInputStream('/Users/liuyahui/test1.docx'); 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); } 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); } }poi生成word --XWPFDocument 合并

//兩個對象進行追加 public XWPFDocument mergeWord(XWPFDocument document,XWPFDocument doucDocument2) throws Exception { XWPFDocument src1Document =document ; XWPFParagraph p = src1Document.createParagraph(); //設置分頁符 p.setPageBreak(true); CTBody src1Body = src1Document.getDocument().getBody(); XWPFDocument src2Document = doucDocument2; CTBody src2Body = src2Document.getDocument().getBody();// XWPFParagraph p2 = src2Document.createParagraph(); XmlOptions optionsOuter = new XmlOptions(); optionsOuter.setSaveOuter(); String appendString = src2Body.xmlText(optionsOuter); String srcString = src1Body.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); src1Body.set(makeBody); return src1Document; }無限合并

XWPFDocument xmd=list.get(0); //默認獲取第一個作為模板for (int i=0;i<list.size()-1;i++) { xmd=mergeWord(xmd,list.get(i+1)); //相繼合并 }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: word
相關文章:
主站蜘蛛池模板: 中国第一毛片 | 久久婷婷是五月综合色狠狠 | 欧美一级视频在线观看欧美 | 免费黄色大片网站 | 色播在线永久免费视频网站 | 黄色大片一级 | 亚洲一区毛片 | 直接看毛片 | 日韩一级片免费观看 | 黄网视频在线观看 | 俄国特级毛片www免 俄罗斯14一18处交 | 国内欧美一区二区三区 | 欧美精品一区二区三区在线播放 | 国产福利午夜自产拍视频在线 | 巨乳毛片 | 一级做a爰性视频 | 国产成人免费网站 | 特级毛片aaaa免费观看 | 成人深夜福利在线播放不卡 | 日韩精品无码一区二区三区 | 台湾永久内衣秀 | 免费国产h视频在线观看86 | 黑人巨大在线 | 欧美特黄a级高清免费看片 欧美特黄a级猛片a级 | 久久亚洲国产的中文 | 四虎永久免费鲁大师 | 狠狠色成人综合网图片区 | 免费看的黄色小视频 | 黄 在线 | 高h猛烈做哭bl壮汉受小说 | 国产片免费 | 欧美—级v免费大片 | 国产女人精品性视频 | 久久成人激情视频 | 国产在线91精品入口首页 | 国内精品视频成人一区二区 | 国产欧美一区二区精品性色99 | 嫩草影院在线入口 | 日本黄色一级 | 俄罗斯女人与公拘i交酡 | 亚洲高清视频一区 |