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

发布时间 2023-12-08 09:30:46作者: 爱吃苹果皮

转载:文档中的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, "张三");
    

    # 前端代码

    本示例无前端关键代码。