在使用ms word时,用户可以点击“插入”-“对象”-“文件中的文字”快速将选定文件中的文本插入当前文档。
spire.doc提供了类似的方法inserttextfromfile来将不同的文档合并到同一个文档,但与word的差别在于,目前inserttextfromfile方法不支持选定插入位置。使用该方法合并文档时,新加入的文档默认从新的一页开始显示。如果需要新添加的文档承接前一个文档的段尾,则需要使用不同的合并方法。本文将分别介绍如何使用spire.doc实现两种不同的合并效果。
添加新页合并
c#
string filepath_1 = "c:\\users\\administrator\\desktop\\word_1.docx";
string filepath_2 = "c:\\users\\administrator\\desktop\\word_2.docx";
document doc = new document(filepath_1);
doc.inserttextfromfile(filepath_2, fileformat.docx2013);
doc.savetofile("合并文档.docx", fileformat.docx2013);
vb.net
dim filepath_1 as string = "c:\users\administrator\desktop\word_1.docx"
dim filepath_2 as string = "c:\users\administrator\desktop\word_2.docx"
dim doc as document = new document(filepath_1)
doc.inserttextfromfile(filepath_2, fileformat.docx2013)
doc.savetofile("合并文档.docx", fileformat.docx2013)
承接前一个文档的段尾合并
这种合并方法的思想是获取第一个文档的最后一个section,然后将其余被合并文档的段落作为新的段落添加到section。
c#
document doc1 = new document("c:\\users\\administrator\\desktop\\测试文档_1.docx");
document doc2 = new document("c:\\users\\administrator\\desktop\\测试文档_2.docx");
section lastsection = doc1.lastsection;
foreach (section section in doc2.sections) {
foreach (documentobject obj in section.body.childobjects) {
lastsection.body.childobjects.add(obj.clone);
}
}
doc1.savetofile("合并文档_2.docx", fileformat.docx2013);
vb.net
dim doc1 as document = new document("c:\users\administrator\desktop\测试文档_1.docx")
dim doc2 as document = new document("c:\users\administrator\desktop\测试文档_2.docx")
dim lastsection as section = doc1.lastsection
for each section as section in doc2.sections
for each obj as documentobject in section.body.childobjects
lastsection.body.childobjects.add(obj.clone)
next
next
doc1.savetofile("合并文档_2.docx", fileformat.docx2013)