转载:用pageOffice控件实现 office word文档在线编辑 表格中写数据的方法
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的操作,包括给单元格赋值和动态添加行的效果。