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

发布时间 2023-05-10 11:09:25作者: 爱吃苹果皮

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 通过代码写入数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@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的操作,包括给单元格赋值和动态添加行的效果。

 

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