色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

java 使用POI合并兩個word文檔

瀏覽:118日期:2022-05-19 16:03:46
java POI合并兩個word文檔有需要的可以將主函數(shù)中寫死的地方改為一個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();//設(shè)置分頁符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 合并

//兩個對象進(jìn)行追加 public XWPFDocument mergeWord(XWPFDocument document,XWPFDocument doucDocument2) throws Exception { XWPFDocument src1Document =document ; XWPFParagraph p = src1Document.createParagraph(); //設(shè)置分頁符 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); //默認(rèn)獲取第一個作為模板for (int i=0;i<list.size()-1;i++) { xmd=mergeWord(xmd,list.get(i+1)); //相繼合并 }

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: word
相關(guān)文章:
主站蜘蛛池模板: 高清欧美日本视频免费观看 | 香蕉网影院在线观看免费 | 亚洲美女爱爱 | 久久久久久久久久免免费精品 | 高清国产美女一级毛片 | 台湾三级香港三级在线理论 | www色午夜| 亚洲精品视频观看 | 亚洲国产精品久久久久秋霞不卡 | 国产成人在线视频免费观看 | 揉揉胸摸腿摸下面va视频 | 国产美女精品视频免费观看 | 深夜福利爽爽爽动态图 | 波多野结衣一区二区 三区 波多野结衣一区二区三区88 | 狠色狠狠色狠狠狠色综合久久 | 美女张开腿让男人捅爽 | 欧美日韩国产人成在线观看 | 在线三级网址 | 在线成人精品国产区免费 | 国语自产精品视频 | 午夜成人免费影院 | 欧美性活一级视频 | 情侣偷偷看的羞羞视频网站 | 国产美女一区二区三区 | 中文字幕福利视频 | 美女视频免费黄 | 国产精品v在线播放观看 | 美国三级在线观看 | 美女张开腿男人桶 | 免费a级在线观看播放 | 碰碰碰免费公开在线视频 | 男女乱淫真视频免费一级毛片 | 国产精品久久久久久久毛片 | 久久精品2| 成年人免费视频观看 | 男人操女人逼逼视频 | 91黑丝国产线观看免费 | a级片在线观看免费 | 亚洲精品影院久久久久久 | 日本加勒比在线视频 | 欧美一级α片毛片免费观看 |