🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **动态填充Word文档** 对PageOffice有基本了解的用户可能知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面叫做“数据区域”,模板数据区域的具体制作和详细描述这里不做说明,具体的制作方法请详细阅读“编辑模板中的数据区域”的章节.那么数据区域里面到底能填充些什么内容呢?以Java开发语言为例,下面我们一起学习一下。 **1. 数据区域中填充文本数据** ~~~ WordDocument doc = new WordDocument(); //打开数据区域, "PO_userName"就是PageOffice中的数据区域 DataRegion dataRegion1 = doc.openDataRegion("PO_userName"); //给数据区域赋值 dataRegion1.setValue("张三"); //还可以给填充的文本设置字体,颜色等样式 dataRegion1.getFont().setColor(Color.blue); dataRegion1.getFont().setSize(24); dataRegion1.getFont().setName("隶书"); dataRegion1.getFont().setBold(true); DataRegion dataRegion2 = doc.openDataRegion("PO_deptName"); dataRegion2.setValue("销售部"); dataRegion2.getFont().setColor(Color.red); ……. poCtrl1.setWriter(doc); poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三"); ~~~ :-: ![141](https://box.kancloud.cn/ec1e62e6eec45108bf7724fe378cad68_944x679.png) >[info] 请参考PageOffice开发包中Samples4示例: > 二、27、给Word文档中的数据区域(DataRegion)赋值并设置样式 **2. 数据区域中填充图片([image]图片路径[/image])** ~~~ WordDocument worddoc = new WordDocument(); // 给DataRegion赋值,值的形式为” [image]图片路径[/image]”,这里的图片路径可以是http相对路径, // 也可以是文件在服务器磁盘上的绝对路径,也可以是流的形式,例如: // data1.setValue("[image]D:\\1.jpg[/image]"); // data1.setValue("[image]downImage.jsp?id=1[/image]"); DataRegion data1 = worddoc.openDataRegion("PO_p1"); data1.setValue("[image]doc/1.jpg[/image]"); ……. poCtrl1.setWriter(worddoc); poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三"); ~~~ **3. 数据区域中填充Word文档,生成一个文档合并的效果([word]word文档路径[/word]).** ~~~ WordDocument worddoc = new WordDocument(); // 给DataRegion赋值,值的形式为” [word]word文档路径[/word]”,这里的文件路径可以是http相对路径, // 也可以是文件在服务器磁盘上的绝对路径,也可以是流的形式,例如: // data1.setValue("[word]D://aa.doc[/word]"); // data1.setValue("[word]downFile.jsp?id=1[/word]"); DataRegion data2 = worddoc.openDataRegion("PO_p2"); data2.setValue("[word]doc/2.doc[/word]"); DataRegion data3 = worddoc.openDataRegion("PO_p3"); data3.setValue("[word]doc/3.doc[/word]"); ……. poCtrl1.setWriter(worddoc); poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三"); ~~~ :-: ![142](https://box.kancloud.cn/75997faa75bd9f878b856cee3739cd21_915x1025.png) >[info] 请参考PageOffice开发包中Samples4示例: > 二、7、后台编程插入图片到数据区域(专业版、企业版) **4. 数据区域中插入excel文档,生成一个文档合并的效果([excel]excel文档路径[/excel]).** 此处插入的excel文档可以在线手动编辑,但是没有其它excel复杂的功能,并且此功能只有企业版支持。 ~~~ WordDocument worddoc = new WordDocument(); //给DataRegion赋值,值的形式为“[word]excel文档路径[/excel]”,这里的文件路径可以是http相对路径, // 也可以是文件在服务器磁盘上的绝对路径,也可以是流的形式,例如: //data1.setValue("[excel]D:\\aa.xls[/excel]"); //data1.setValue("[excel]downFile.jsp?id=1[/excel]"); DataRegion data1 = worddoc.openDataRegion("PO_p1"); data1.setValue("[excel]doc/1.xls[/excel]"); ……. poCtrl1.setWriter(worddoc); poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三"); ~~~ :-: ![143](https://box.kancloud.cn/d93dc811599a965f5cda806c0dd5facc_882x545.png) >[info] 请参考PageOffice开发包中Samples4示例: > 二、8、后台编程插入Excel文件到数据区域(企业版)