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

1 应用场景

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

如word文档中,表格数据 如下表格中

人员信息



怎么把后端的关键数据,填充到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的操作,包括给单元格赋值和动态添加行的效果。

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

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

  1. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  2. 使用ABAP编程实现对微软Office Word文档的操作

    SAP ABAP里提供了一个标准的类CL_DOCX_DOCUMENT,提供了本地以".docx"结尾的微软Office word文档的读和写操作. 本文介绍了ABAP类CL_DOC ...

  3. 新建 Microsoft Office Word 文档 来源:牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28886/1015 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...

  4. 在项目中利用TX Text Control进行WORD文档的编辑显示处理

    在很多文档管理的功能模块里面,我们往往需要对WORD稳定进行展示.编辑等处理,而如果使用微软word控件进行处理,需要安装WORD组件,而且接口使用也不见得简单易用,因此如果有第三方且不用安装Offi ...

  5. asp.net 将word文档进行编辑并导出一个新的word

    最近做项目,需要多word文档进行编辑并导出一个新的word,在最初的word编辑中留下特定的字符串用来替换,然后在本地生成一个新的word文档,并且不修改服务器中的word文档,这样才能保证服务器中 ...

  6. asp.net如何实现word文档在线预览

    原文:asp.net如何实现word文档在线预览 实现方式:office文档转html,再在浏览器里面在线浏览 1.首先引入com组件中office库,然后在程序集扩展中引入word的dll 2.将M ...

  7. word文档在线预览解决方案

    花了一整天在网上翻关于 “word文档在线预览解决方案” 相关的资料,感觉实现难度比较大还是用PDF来解决好了.. 下面列一下比较好的参考资料吧 参考资料 前端实现在线预览pdf.word.xls.p ...

  8. Office文档在线编辑的实现之二

    讲述了如何通过iis的webdav支持实现客户端的office直接编辑服务器上的文件,本篇将讲解如何实现客户端的office直接编辑数据库中的二进制形式保存的office文件. 实现的关键:模拟IIS ...

  9. wps金山文档在线编辑--.Net 接入指南

    一.申请成为服务商,对金山文档在线服务进行申请 ①进入官网 https://open.wps.cn/ ②申请后如下图,点击右下角的进入服务 ③申请成功后 ④数据回调URL一定是服务器地址,本次我使用的 ...

  10. ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

随机推荐

  1. Python 中的数字类型与转换技巧

    Python中有三种数字类型: int(整数) float(浮点数) complex(复数) 当您将值分配给变量时,将创建数字类型的变量: 示例:获取您自己的Python服务器 x = 1 # int ...

  2. 干货分享|身为顶尖的Hr,这个Excel插件你不能不知道,用上它事业开挂!

    第一季度,老板看了历年不同地区各销售业绩数据表的总结,说想知道新人进来多久才能成为成熟的销售,成长周期有多长? 我们人事被老板这个灵光一现的想法吓到了,大家伙上上下下为这件事情忙了4个日夜. 整整五年 ...

  3. Qt多语言动态切换

    有个软件,里面做了13种语言,销售要求实现重新设置软件语言后,不需要重启软件,就可以看到软件显示出对应的语言.   软件中所有需要翻译的地方都是用的 tr(QString) 来做的,并且软件是多个窗口 ...

  4. 物联网浏览器(IoTBrowser)-Java快速对接施耐德网络IO网关

    前一段时间有个Java技术栈的朋友联系到我,需要快速对接现有的无人值守称重系统,这里的对接是指替代现有系统,而非软件层面的对接,也就是利用现有的硬件开发一套替代现有软件的自动化系统.主要设备包括地磅秤 ...

  5. TortoiseGit安装、配置(Git 小乌龟安装)

    1 TortoiseGit简介 tortoiseGit是一个开放的git版本控制系统的源客户端,支持Winxp/vista/win7.该软件功能和git一样 不同的是:git是命令行操作模式,tort ...

  6. numpy函数向量化,np.vectorize

    import numpy as np import time def myfunc(a, b): if a>b: return a-b else: return a+b vfunc = np.v ...

  7. Kubernetes 部署集群1.28.2版本(无坑)

    初步搭建一个一个主节点和两个从节点Kubernetes 1.28.2 集群.先准备好机器 | host | hostname | os | role | hardware | | --- | --- ...

  8. 【笔记】go语言--Map

    go语言--Map //基本结构,定义 m := map[string] string { "name" : "ccmouse",//这些是无序的,是hashm ...

  9. 为什么游戏行业喜欢用PolarDB

    简介: PolarDB 在游戏行业的最佳实践 为什么游戏行业喜欢用PolarDB 游戏行业痛点 在我看来, 不同行业对数据库使用有巨大的差别. 比如游戏行业没有复杂的事务交易场景, 他有一个非常大的b ...

  10. MAE 自监督算法介绍和基于 EasyCV 的复现

    ​简介:自监督学习(Self-Supervised Learning)能利用大量无标注的数据进行表征学习,然后在特定下游任务上对参数进行微调.通过这样的方式,能够在较少有标注数据上取得优于有监督学习方 ...