首页 > 其他分享 >PageOfficeV6.0给文档中的Table插入新行并赋值

PageOfficeV6.0给文档中的Table插入新行并赋值

时间:2023-12-08 09:34:09浏览次数:30  
标签:setValue openCellRC 插入 文档 PageOfficeV6.0 table Table 新行

转载:文档中的Table插入新行并赋值

文档中的Table插入新行并赋值

注意

本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

在项目的开发中会遇到这样的需求:要求在生成word文件的时候,需要给表格赋值,但是表格行数不固定,需要根据数据库中的数据记录实现数据填充。通过调用PageOffice动态添加行的功能,就可以实现此需求。

比如一个下图所示的Word表格文件: 使用本文“后端代码”对表格做数据填充后的效果如下图所示:

注意

Word中的table是要借助数据区域(DataRegion)实现的,要求数据区域完整的包含了整个Table的内容,这样才可以通过数据区域控制和操作table。因此,要想使用table,则必须在word文件中插入书签。而table的插入,既可以在Word模版中书签处手动插入:工具栏“插入”→“表格”,亦可以在程序中通过数据区域动态添加。

# 后端代码

        PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
        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);
        //webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
        //查看详细,请在本站搜索“PageOffice属性或方法中涉及到的URL路径或磁盘路径的说明”
        poCtrl.webOpen("D:\\template1.docx", OpenModeType.docNormalEdit, "张三");
    

    # 前端代码

    本示例无前端关键代码。

    标签:setValue,openCellRC,插入,文档,PageOfficeV6.0,table,Table,新行
    From: https://www.cnblogs.com/lhl77/p/17884464.html

    相关文章

    • element plus el-table表格合并
      el-table表格合并实现都是使用表格的span-method属性绑定操作函数<el-table:data="table.data":span-method="objectSpanMethod"></el-table>操作函数格式constobjectSpanMethod=({row,column,rowIndex,columnIndex})=>{}相同值行合并对于相同的值进行行......
    • Page Tables (页表) (翻译 by chatgpt)
      原文:https://www.kernel.org/doc/html/latest/mm/page_tables.html分页虚拟内存是在1962年与虚拟内存概念一起在FerrantiAtlas计算机上发明的,这是第一台具有分页虚拟内存的计算机。随着时间的推移,这一特性迁移到了更新的计算机上,并成为所有类Unix系统的事实上的特性。1985年,这一......
    • react antd table react-sortable-hoc DraggableBodyRow 拖拽及禁用指定行拖拽
      原文地址:基于antd树形表格table的拖拽排序效果实现-掘金(juejin.cn)思路片段:constDraggableBodyRow:React.FC<any>=({className,style,...restProps})=>{constindex=customInfoList.findIndex(({order:_index})=>_index===restProps['data-r......
    • Docker安装Zabbix-server出现[its "users" table is empty]问题的解决
      简述安装过程dockerrun--namezabbix-db--networkzabbixnet-eMYSQL_ROOT_PASSWORD="password"-eMYSQL_USER="zabbix"-eMYSQL_PASSWORD="zabbix"-eMYSQL_DATABASE="zabbix"-dmysqldockerrun--namezabbix-server--net......
    • a-table(AntDesign Vue)实现表格行上下拖动排序
      参考链接:https://blog.csdn.net/song_de/article/details/125218350https://blog.csdn.net/m0_61342618/article/details/132556739?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1-132556739-blog-125218350.235v39pc_releva......
    • linux iptables操作
      1.查看iptables规则iptables-nL2.添加iptables规则iptables-AINPUT-s10.0.0.0/8-d10.0.0.0/8-ptcp-mmultiport--dports6379,6643-jACCEPT该命令使用 -AINPUT 将规则添加到过滤器的INPUT链(即入站流量),并指定以下条件:-s10.0.0.0/8:源IP地址是 10.0.0.......
    • 【EMNLP 2023】面向Stable Diffusion的自动Prompt工程算法BeautifulPrompt
      近日,阿里云人工智能平台PAI与华南理工大学朱金辉教授团队合作在自然语言处理顶级会议EMNLP2023上发表了BeautifulPrompt的深度生成模型,可以从简单的图片描述中生成高质量的提示词,从而使文生图模型能够生成更美观的图像。BeautifulPrompt通过对低质量和高质量的提示进行微调,并进一步......
    • .net core DataTable.Load()方法,返回的行缺少,少于reader读出的行
       我分析的原因是,datatable模式的schema默认是根据查询的sql来的。起因是我写的sql中带有主键的列,查出来有很多重复值,然后dt.load会默认把主键重复的行给合并掉,所以最终查询出来的都是主键不重复的数据行,重复的行都被合并掉了,所以就缺失了。另外,dt.load有个重载版本,我的理解是......
    • SQL ALTER TABLE 语句- 灵活修改表结构和数据类型
      SQLALTERTABLE语句SQLALTERTABLE语句用于在现有表中添加、删除或修改列,也可用于添加和删除各种约束。ALTERTABLE-添加列要在表中添加列,请使用以下语法:ALTERTABLE表名ADD列名数据类型;以下SQL向"Customers"表添加了一个"Email"列:ALTERTABLECustomersA......
    • SQL ALTER TABLE 语句- 灵活修改表结构和数据类型
      SQLALTERTABLE语句SQLALTERTABLE语句用于在现有表中添加、删除或修改列,也可用于添加和删除各种约束。ALTERTABLE-添加列要在表中添加列,请使用以下语法:ALTERTABLE表名ADD列名数据类型;以下SQL向"Customers"表添加了一个"Email"列:ALTERTABLECustomers......