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

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

1 应用场景

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

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

2 实现方法

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

3 实现过程

以java的springboot框架为例

1 集成pageOffice

https://www.zhuozhengsoft.com/dowm/
image

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

2 设置数据区域 包含表格

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

最终效果如图

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

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 代码打开后的效果

image

5 总结

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

转载:https://www.cnblogs.com/qingxue636/p/16944178.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章