首页 > 其他分享 >PageOffice——动态填充Word模板并在线编辑

PageOffice——动态填充Word模板并在线编辑

时间:2023-04-07 10:00:48浏览次数:51  
标签:poCtrl word doc excel worddoc PageOffice DataRegion Word 模板

说明:使用pageoffice动态给word模板填充数据,插入图片、excel、word格式的文件和创建表格。

一、准备工作:

本地创建一个doc或者docx格式的文件,在文件中需要插入数据的地方设置以“PO_”开头的书签(pageoffice只能识别“PO_”开头的书签)。

 二、插入图片

  1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
  2. poCtrl.setServerPage("/poserver.zz");//设置服务页面
  3. WordDocument worddoc = new WordDocument();
  4. //给DataRegion插入图片,值的形式为:"[image]图片路径[/image]"
  5. DataRegion data1 = worddoc.openDataRegion("PO_image");
  6. data1.setValue("[image]G:\\doc\\test.jpg[/image]");
  7. //设置 PageOfficeCtrl 控件的数据对象,这句不写插入图片代码不生效
  8. poCtrl.setWriter(worddoc);
  9. //打开Word文档
  10. poCtrl.webOpen("G:\\doc\\template.docx", OpenModeType.docNormalEdit, "张三");

三、插入word文件

  1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
  2. poCtrl.setServerPage("/poserver.zz");//设置服务页面
  3. WordDocument worddoc = new WordDocument();
  4. //给DataRegion插入word文件,值的形式为:"[word]word文件路径[/word]"
  5. DataRegion data2 = worddoc.openDataRegion("PO_word");
  6. data2.setValue("[word]G:\\doc\\template1.docx[/word]");
  7. poCtrl.setWriter(worddoc);
  8. //打开Word文档
  9. poCtrl.webOpen("G:\\doc\\template.docx", OpenModeType.docNormalEdit, "张三");

四、插入excel文件

  1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
  2. poCtrl.setServerPage("/poserver.zz");//设置服务页面
  3. WordDocument worddoc = new WordDocument();
  4. //给DataRegion插入excel文件,值的形式为:"[excel]excel文件路径[/excel]"
  5. DataRegion data3 = worddoc.openDataRegion("PO_excel");
  6. data3.setValue("[excel]G:\\doc\\template2.xlsx[/excel]");
  7. poCtrl.setWriter(worddoc);
  8. //打开Word文档
  9. poCtrl.webOpen("G:\\doc\\template.docx", OpenModeType.docNormalEdit, "张三");

五、动态创建表格并赋值

pageoffice动态创建表格和本地office创建表格一样,可以设置表格的边框颜色、边框类型、边框线条样式和边框粗细等等,也可以合并单元格,具体方法可以参考帮助文档:生成的文档(无标题)

  1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
  2. poCtrl.setServerPage("/poserver.zz");//设置服务页面
  3. WordDocument worddoc = new WordDocument();
  4. //动态创建一个4行4列根据活动窗口的宽度自动调整大小的表格
  5. DataRegion data4 = worddoc.openDataRegion("PO_table");
  6. Table table = data4.createTable(4, 4, WdAutoFitBehavior.wdAutoFitWindow);
  7. //设置表格边框颜色
  8. table.getBorder().setLineColor(Color.red);
  9. //合并单元格
  10. table.openCellRC(1,1).mergeTo(2,1);
  11. table.openCellRC(1,1).setValue("合并");
  12. poCtrl.setWriter(worddoc);
  13. //打开Word文档
  14. poCtrl.webOpen("G:\\doc\\template.docx", OpenModeType.docNormalEdit, "张三");

 整体效果和代码:

  1. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
  2. poCtrl.setServerPage("/poserver.zz");//设置服务页面
  3. WordDocument worddoc = new WordDocument();
  4. //给DataRegion插入图片,值的形式为:"[image]图片路径[/image]"
  5. DataRegion data1 = worddoc.openDataRegion("PO_image");
  6. data1.setValue("[image]G:\\doc\\test.jpg[/image]");
  7. //给DataRegion插入word文件,值的形式为:"[word]word文件路径[/word]"
  8. DataRegion data2 = worddoc.openDataRegion("PO_word");
  9. data2.setValue("[word]G:\\doc\\template1.docx[/word]");
  10. //给DataRegion插入excel文件,值的形式为:"[excel]excel文件路径[/excel]"
  11. DataRegion data3 = worddoc.openDataRegion("PO_excel");
  12. data3.setValue("[excel]G:\\doc\\template2.xlsx[/excel]");
  13. //动态创建一个4行4列根据活动窗口的宽度自动调整大小的表格
  14. DataRegion data4 = worddoc.openDataRegion("PO_table");
  15. Table table = data4.createTable(4, 4, WdAutoFitBehavior.wdAutoFitWindow);
  16. //设置表格边框颜色
  17. table.getBorder().setLineColor(Color.red);
  18. //合并单元格
  19. table.openCellRC(1,1).mergeTo(2,1);
  20. table.openCellRC(1,1).setValue("合并");
  21. poCtrl.setWriter(worddoc);
  22. //打开Word文档
  23. poCtrl.webOpen("G:\\doc\\template.docx", OpenModeType.docNormalEdit, "张三");

转载:PageOffice——动态填充Word模板并在线编辑

标签:poCtrl,word,doc,excel,worddoc,PageOffice,DataRegion,Word,模板
From: https://www.cnblogs.com/lhl77/p/17295051.html

相关文章

  • VSCode自建vue示例模板
    步骤打开File->Preferences->ConfigureUserSnippets选择NewGlobalSnippetsfile...输入名字(自定义),填入以下内容,注意修改vue.js路径{"Printtoconsole":{"prefix":"vue","body":["<scrip......
  • Word2Vec:一种基于预测的方法
    Word2Vec是一种用于自然语言处理(NLP)的机器学习算法,它能够将文本中的词语转换为向量形式,这些向量在数学上具有有意义的几何特征。在本文中,我将介绍Word2Vec算法的原理、实现和应用方向。算法介绍Word2Vec是一种用于将文本中的词语转换为向量的算法。它使用神经网络模型来学习每个......
  • PVE Cloud-INIT 模板配置
    PVECloud-INIT模板配置Cloud-init是什么Cloud-init是开源的云初始化程序,能够对新创建弹性云服务器中指定的自定义信息(主机名、密钥和用户数据等)进行初始化配置。通过Cloud-init进行弹性云服务器的初始化配置,将对您使用弹性云服务器、镜像服务和弹性伸缩产生影响。简单地讲,clou......
  • T4 运行时模板引擎
    之前的文章都介绍的是通过保存的方式来使用T4,或者是通过VS下的TextTransform.exe文件来编译T4(还需要考虑传参长度等各种问题)T4模板引擎参数调用;这些方法都比较繁琐,可以适用在不同的使用场景下,本文介绍一下运行时的T4模板运行时T4只需要在创建时候选择为运行时模板即可,和之前......
  • 【wordpress】wordpress插件之自动采集发布工具
    前言安装好wordpress后,就要开始发布文章,由于之前的文章分散在各个平台,想要一个个拷贝过去,的确费时费力,所以想要一劳永逸的解决这个问题,就要用到今天介绍的这个采集工具插件安装搜索:FatRatCoolect然后点击现在安装如果因为网速慢下载不下来,可以直接到官网下载然后上传:cd/wp-con......
  • 【Linux】wordpress后台设置
    文章目录一.个人资料1.点击右上角的个人名称:选中编辑我的个人资料2.按下图进行修改二.设置--常规选项三.文章分类一.个人资料1.点击右上角的个人名称:选中编辑我的个人资料2.按下图进行修改二.设置–常规选项三.文章分类登陆后台-文章-分类目录Linux基础,web应用,中间件,数......
  • blockchain | 基于ethers.js的ctf合约攻击模板
    blockchain|基于ethers.js的ctf合约攻击模板之前做题用的是truffle命令行和truffleexec来进行编写代码,封装的层级比较高,这个框架主要还是用来开发比较方便,看了大师傅的wp(https://www.seaeye.cn/archives/497.html)以后觉得还是得写一个自己用起来顺手的攻击模板。使用ethers......
  • opencv-python 4.12. 模板匹配
    理论模板匹配是一种在较大图像中搜索和查找模板图像位置的方法。为此,OpenCV附带了一个函数cv.matchTemplate()。它只是在输入图像上滑动模板图像(如在2D卷积中),并比较模板图像下的输入图像的模板和补丁。在OpenCV中实现了几种比较方法。它返回一个灰度图像,其中每个像素表示该像素的......
  • 基于模板和形态学处理的车牌检测分割和识别matlab仿真,可以识别其中的一个英文字母和
    1.算法描述       车牌识别系统(VehicleLicensePlateRecognition,VLPR)是计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。        车牌识别技术要......
  • PageOffice既保存Word文件中指定区域的数据又保存整篇文件
    一、首先在word文件中给需要在后台获取数据的区域设置以PO_开头的书签。二、通过pageoffice在线打开文件并编辑保存。有两种打开文件的模式1、普通编辑模式(docNormalEdit)普通编辑模式就是简单的打开文件,分别设置SaveDataPage保存数据的方法和SaveFilePage保存文件的方法即可,......