欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PageOffice实现多个Word文件合并

程序员文章站 2022-05-30 15:36:29
...

实际的项目需求中同样也会遇到合并word文件的情况,在此分两种情况分别介绍一下使用PageOffice解决此需求的实现方法。

1.把多个word文档分别插入到模板中指定数据区域生成一个Word文档。

首先介绍一下DataRegion的Value属性,如果给Value赋值一个字符串常量或变量,那么数据区域的内容就是这段文本;如果给Value赋值一个”[Word]”开头,”[/Word]”结尾的字符串常量或变量,PageOffice会认为[Word]和 [/Word]之间是另外的一个word文档的URL路径,PageOffice会自动的把这个word文档的整个内容插入到数据区域所在位置。

ASP.NET的代码:

doc.OpenDataRegion("PO_dr ").Value = "[Word]doc/001.doc[/Word]";

JAVA的代码:

doc.openDataRegion("PO_dr").setValue([Word]doc/001.doc[/Word]);

实现插入多个文档到模板中指定的数据区域,只需要重复的对各个数据区域赋值对应的文档URL路径值。

2.把多个Word文档前后相连合并成一个文档的。

实现多个Word文件的连接,推荐使用给数据区域赋值“[Word] 文档下载路径[/Word]” 的方法,利用PageOffice.WordWriter.WordDocument对象的CreateDataRegion方法在文件的末尾连续创建数据区域,然后依次给各个数据区域赋值要插入的Word文档的URL路径。比如要合并doc目录下的1.doc、2.doc和3.doc到一个文件中。

ASP.NET的实现代码:

PageOffice.WordWriter.WordDocument doc = new PageOffice.WordWriter.WordDocument();
PageOffice.WordWriter.DataRegion dr1 = doc.CreateDataRegion("PO_dr1",
PageOffice.WordWriter.DataRegionInsertType.After, "[End]"); 
dr1.Value = "[Word]doc/1.doc[/Word]";
PageOffice.WordWriter.DataRegion dr2 = doc.CreateDataRegion("PO_dr2",
PageOffice.WordWriter.DataRegionInsertType.After, "[End]"); 
dr2.Value = "[Word]doc/2.doc[/Word]";
PageOffice.WordWriter.DataRegion dr3 = doc.CreateDataRegion("PO_dr3",
PageOffice.WordWriter.DataRegionInsertType.After, "[End]"); 
dr3.Value = "[Word]doc/3.doc[/Word]";
……
PageOfficeCtrl1.SetWriter(doc);

JAVA的实现代码:

WordDocument doc = new WordDocument();
DataRegion dr1= doc.createDataRegion("PO_dr1", DataRegionInsertType.After, "[End]");
dr1.setValue("[Word]doc/1.doc[/Word]");
DataRegion dr2= doc.createDataRegion("PO_dr2", DataRegionInsertType.After, "[End]");
dr2.setValue("[Word]doc/2.doc[/Word]");
DataRegion dr3= doc.createDataRegion("PO_dr3", DataRegionInsertType.After, "[End]");
dr3.setValue("[Word]doc/3.doc[/Word]");
……
poCtrl1.setWriter(doc);