欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java怎么實(shí)現(xiàn)合并word文檔

今天小編給大家分享一下Java怎么實(shí)現(xiàn)合并word文檔的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括建昌網(wǎng)站建設(shè)、建昌網(wǎng)站制作、建昌網(wǎng)頁制作以及建昌網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,建昌網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到建昌省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

說明

在做項(xiàng)目中,遇到了一種情況,需要將一個(gè)小word文檔的內(nèi)容插入到一個(gè)大word(主文檔)中。

實(shí)現(xiàn)

1.首先定義好主文檔

在主文檔需要插入小word文檔的位置上添加一個(gè)書簽,這個(gè)書簽名字要記住,后面要用。

Java怎么實(shí)現(xiàn)合并word文檔

2.定義需要追加的文檔

Java怎么實(shí)現(xiàn)合并word文檔

3. 代碼實(shí)現(xiàn)
package com.test.word;

import com.aspose.words.Body;
import com.aspose.words.Bookmark;
import com.aspose.words.BookmarkCollection;
import com.aspose.words.CompositeNode;
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.ImportFormatMode;
import com.aspose.words.Node;
import com.aspose.words.NodeImporter;
import com.aspose.words.Orientation;
import com.aspose.words.PaperSize;
import com.aspose.words.Section;

public class Test1 
{
	public static void main(String[] args) 
	{
		try
		{
			//主文檔
			Document mainDocument = new Document("F:\\test\\main.docx");
			//需要進(jìn)行追加的文檔
			Document addDocument = new Document("F:\\test\\add.docx");
			//第四個(gè)參數(shù)是書簽名,需要和步驟1在大word文檔中定義的書簽名對上
			appendDocument(mainDocument, addDocument, true, "shuqian1");
			System.out.println("成功!");
			//將最終合并完成后的文檔對象保存到文件中
			mainDocument.save("F:\\test\\result.docx");
		} 
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
	
	/**
	 * @Description 文檔拼接
	 * @param mainDoc 主文檔
	 * @param addDoc 要拼接的文檔
	 * @param isPortrait 是否橫向拼接
	 * @param bookmark 書簽名稱,將add文檔拼接到主文檔哪個(gè)位置
	 */
	public static void appendDocument(Document mainDoc, Document addDoc, boolean isPortrait, String bookmark)
	{
		DocumentBuilder builder = null;
		try
		{
			builder = new DocumentBuilder(mainDoc);
			BookmarkCollection bms = mainDoc.getRange().getBookmarks();
			Bookmark bm = bms.get(bookmark);
			if (bm != null)
			{
				builder.moveToBookmark(bookmark, true, false);
				builder.writeln();
				builder.getPageSetup().setPaperSize(PaperSize.A4);
				if (isPortrait)
				{
					builder.getPageSetup().setOrientation(Orientation.PORTRAIT);
				}
				else
				{
					builder.getPageSetup().setOrientation(Orientation.LANDSCAPE);
				}
				Node insertAfterNode = builder.getCurrentParagraph().getPreviousSibling();
				insertDocumentAfterNode(insertAfterNode, mainDoc, addDoc);
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
	
	/**
	 * @Description
	 * @param insertAfterNode 插入的位置
	 * @param mainDoc 主文檔
	 * @param srcDoc 要拼接進(jìn)去的文檔
	 * @Return void
	 */
	@SuppressWarnings("rawtypes")
	private static void insertDocumentAfterNode(Node insertAfterNode, Document mainDoc, Document srcDoc) throws Exception
	{
		if (insertAfterNode.getNodeType() != 8 && insertAfterNode.getNodeType() != 5)
		{
			throw new Exception("The destination node should be either a paragraph or table.");
		}
		else
		{
			CompositeNode dstStory = insertAfterNode.getParentNode();
			Body body = srcDoc.getLastSection().getBody();
			while (null != body.getLastParagraph() && !body.getLastParagraph().hasChildNodes())
			{
				srcDoc.getLastSection().getBody().getLastParagraph().remove();
			}

			NodeImporter importer = new NodeImporter(srcDoc, mainDoc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
			int sectCount = srcDoc.getSections().getCount();

			for (int sectIndex = 0; sectIndex < sectCount; ++sectIndex)
			{
				Section srcSection = srcDoc.getSections().get(sectIndex);
				int nodeCount = srcSection.getBody().getChildNodes().getCount();
				for (int nodeIndex = 0; nodeIndex < nodeCount; ++nodeIndex)
				{
					Node srcNode = srcSection.getBody().getChildNodes().get(nodeIndex);
					Node newNode = importer.importNode(srcNode, true);
					dstStory.insertAfter(newNode, insertAfterNode);
					insertAfterNode = newNode;
				}
			}
		}
	}
}
4. 成果展示

Java怎么實(shí)現(xiàn)合并word文檔

以上就是“Java怎么實(shí)現(xiàn)合并word文檔”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:Java怎么實(shí)現(xiàn)合并word文檔
標(biāo)題網(wǎng)址:http://aaarwkj.com/article48/isjjep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站建設(shè)、域名注冊、面包屑導(dǎo)航、營銷型網(wǎng)站建設(shè)定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
久久视热频这里只有精品| 97在线观看全部视频| 青青草视频免费观看高清在线观看新| 久久国产精品av在线观看| 免费在线免费观看av| 青青草视频免费公开播放| 亚洲国产欧美日韩在线| 人妻少妇被猛烈进入久久精品| 亚洲精品国产av成人网| av手机天堂网免费观看| 中文字幕丝袜精品久久| 日本国产一区二区在线观看| 人妻久久久久久精品99| 国产偷自一区二区三区| 亚洲激情一区在线观看| 关于男女性生活的视频| 黄片色呦呦视频免费看| 九九久久精品久久久精品| 黄色录像免费一内片一级| 欧美欧美欧美欧美一二三区| 丰满高潮少妇在线观看| 美女一区二区三区日本美女在线观看| 欧美大尺度影片在线观看| 色伊人久久综合中文字幕| 日韩精品一区二区三区中文| 午夜午色夜之日本福利片| 国产av剧情同事肉体秘密| 国产一级二级三级亚洲| 国产一区二区三区的网站| 国产九色av在线一区尤物| av日韩在线一区二区三区| 国产男女做爰在线视频| 日韩精品视频在线观看| 亚洲一区在线观看激情| 日日添夜夜躁欧美一区二区| 国产美女极度色诱视频| 美女福利视频一区二区| 欧美高清视频免费播放| 日韩精品中文一区二区| 中文在线中文天堂黄色片| 日韩欧美二区三区在线|