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

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

时间:2023-01-12 21:23:39浏览次数:64  
标签:poCtrl word doc excel worddoc PageOffice DataRegion Word 模板

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

一、准备工作:

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

二、插入图片

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

三、插入word文件

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

四、插入excel文件

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

五、动态创建表格并赋值

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

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


整体效果和代码:

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

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

相关文章

  • P4980 【模板】Pólya 定理
    作为板子题,先上公式:\[|X/G|=\frac1{|G|}\sum_{g\inG}|B|^{c(g)}\]显然,\(|G|=n\)用\(g_i\)表示旋转\(i\)个的置换,则\(c(g_i)=(n,i)\)我们要算下式:\[\begin{ali......
  • SiteFactory编辑器支持Word文档粘贴
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java"......
  • SiteFactory编辑器支持Word文档上传
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordAction......
  • SiteFactory编辑器支持Word文档导入
    ​ 1.编辑器修改(可选)1.1在 ueditor/config.json 中添加代码块    /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action......
  • SiteFactory编辑器支持Word文档一键上传
    ​ 图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.j......
  • JS封装类通用模板
    频繁写封装类太麻烦,发个模板记录一下,下次直接用。调用示例lettc=newTestClass();console.log(tc.data2);tc.fn2(); 封装模板varTestClass=(function(){......
  • SiteFactory编辑器支持Word文档自动粘贴
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘......
  • SiteFactory编辑器支持Word文档自动导入
    ​ 自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑......
  • 一个写得很好的gitlab.yml模板(有Windows和Ubuntu)
    出自这个GitHub:https://github.com/nanoporetech/scrappie/blob/master/.gitlab-ci.yml#YamlCIconfigforGitlabSee.http://docs.gitlab.com/ce/ci/yaml/README.ht......
  • 网络流模板及易错点总结
    网络流模板及易错点总结一、最大流#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintNN=300,MM=5e3+8,INF=0x7f7f7f7f;intn,m,......