首页 > 其他分享 >用pageOffice控件实现 office word文档在线编辑 表格中写数据的方法

用pageOffice控件实现 office word文档在线编辑 表格中写数据的方法

时间:2022-12-02 14:01:41浏览次数:59  
标签:控件 poCtrl setValue word 表格 office openCellRC 文档 table

PageOffice对Word文档中Table的操作,包括给单元格赋值和动态添加行的效果。

 

1 应用场景
OA办公中,经常要在文档的指定位置表格,填充后端指定数据。
如word文档中,表格数据     如下表格中

 人员信息

人员信息表

公司名称

部门名称

员工姓名

A公司

开发部

李清

B公司

销售部

张三

 

 


怎么把后端的关键数据,填充到word文档表格中呢?

2 实现方法

 

文档中设置好书签,设置好表格后,通过后端调用pageOffice插件代码就可以实现。

 

3 实现过程

以java的springboot框架为例

1 集成pageOffice
https://www.zhuozhengsoft.com/dowm/

 

 

 

从pageOffice官网
下载页面,找到springboot的集成示例,按照里面的集成明说,可以集成到自己的springboot项目中。

 

 

2 设置数据区域 包含表格

数据区域的技巧
https://www.kancloud.cn/pageoffice_course_group/pageoffice_course/663125

最终效果如图

注意,一定要书签包含整个表格,并且还要包含表格上下一行

 

 

 

 

3 通过代码写入数据

@RequestMapping(value = "Word", method = RequestMethod.GET)
    public ModelAndView showWord(HttpServletRequest request, Map<String, Object> map) {
        PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
        poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");//设置服务页面

        WordDocument doc = new WordDocument();
        //打开数据区域
        DataRegion dataRegion = doc.openDataRegion("PO_regTable");
        //打开table,openTable(index)方法中的index代表Word文档中table位置的索引,从1开始
        Table table = dataRegion.openTable(1);

        //给table中的单元格赋值, openCellRC(int,int)中的参数分别代表第几行、第几列,从1开始
        table.openCellRC(3, 1).setValue("A公司");
        table.openCellRC(3, 2).setValue("开发部");
        table.openCellRC(3, 3).setValue("李清");

        //插入一行,insertRowAfter方法中的参数代表在哪个单元格下面插入一个空行
        table.insertRowAfter(table.openCellRC(3, 3));

        table.openCellRC(4, 1).setValue("B公司");
        table.openCellRC(4, 2).setValue("销售部");
        table.openCellRC(4, 3).setValue("张三");

        poCtrl.setWriter(doc);
        //隐藏菜单栏
        poCtrl.setMenubar(false);
        //隐藏自定义工具栏
        poCtrl.setCustomToolbar(false);

        //打开Word文档
        poCtrl.webOpen("/doc/WordSetTable/test.doc", OpenModeType.docNormalEdit, "张三");
        map.put("pageoffice", poCtrl.getHtmlCode("PageOfficeCtrl1"));
        ModelAndView mv = new ModelAndView("WordSetTable/Word");
        return mv;

  

 

 

通过以上代码,可以将数据库中的

A公司  开发部  李清

B公司 销售部  张三 

写到文档中。

4 代码打开后的效果

5 总结

 

PageOffice对Word文档中Table的操作,包括给单元格赋值和动态添加行的效果。

 

标签:控件,poCtrl,setValue,word,表格,office,openCellRC,文档,table
From: https://www.cnblogs.com/qingxue636/p/16944178.html

相关文章

  • WORD的三种选定文本的方法
    1、鼠标对着某段,左键三点击,就可以选晒一段了。2、竖向选中文字。按住ALT键,单击左键不放手,向右下方拖动。3、如果要复制粘贴不连续的文字,则选中第1部分内容,然后按住CTRL键,......
  • word 97+java+freemarker导出word
    java中,导出word,一般是可以先用word做好模版,然后另存为mht网页文件,然后利用freemaker中做标记,再用java程序填充,但要注意,保存为网页文件后,要改下编......
  • word添加水印工具类
    需要添加一个jar包(百度就行很多):  packagecom.seeyon.apps.watermark.utils;importcom.itextpdf.text.pdf.PdfContentByte;importcom.spire.doc.*;importcom......
  • asp.net 2.0中不同web控件之间的相互调用
    在asp.net2.0中,要在不同的web控件之间互相调用,必须要<%@ReferenceVirtualPath="另一控件名称“>来引用,举例如下default.aspx:<formid="form1"runat="server">    ......
  • 技巧:WORD中过宽表格如何横向设置问题
    ......
  • 界面控件DevExtreme——轻松将TreeList数据导出为PDF格式
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能......
  • 127. Word Ladder (很重要!!!)
    beginWord and endWord),andadictionary'swordlist,findthelengthofshortesttransformationsequencefrom beginWordto endWord,suchthat:Onlyonelette......
  • 79. Word Search
    Givena2Dboardandaword,findifthewordexistsinthegrid.Thewordcanbeconstructedfromlettersofsequentiallyadjacentcell,where"adjacent"cell......
  • WordPress编辑器支持Word文档粘贴
    ​ ueditor粘贴不能粘贴word中的图片是一个很头疼的问题,在我们的业务场景中客户要求必须使用ueditor并且支持word的图片粘贴,因为这个需求头疼了半个月,因为前端方面因为安......
  • C#窗体控件,文字随电脑分辨率自动调整大小
    一、在类中添加方法,代码如下:#region窗体控件、字体随分辨率调整,自动调整大小publicstaticvoidSetTag(Controlcons){foreach(Cont......