PageOffice 开发者中心 PageOffice 开发者中心
首页
文档
  • 后端Java手册 (opens new window)
  • 后端.netcore手册 (opens new window)
  • 前端JavaScript手册 (opens new window)
下载
购买 (opens new window)
首页
文档
  • 后端Java手册 (opens new window)
  • 后端.netcore手册 (opens new window)
  • 前端JavaScript手册 (opens new window)
下载
购买 (opens new window)
  • 开始

  • 通用控制

  • Word

    • 常用控制

    • 动态填充

      • 数据区域填充文本
      • 数据区域插入图片
      • 设置数据区域文本样式
      • 数据区域生成表格
      • 数据区域插入Word文档
      • 数据区域插入Excel文档
      • 数据标签填充文本
      • 数据标签填充文本并设置样式
      • 给数据区域赋值并设置样式
      • 给文本框中的数据区域赋值
      • 给Word文档中Table赋值
      • 合并Word中表格的单元格
      • 单元格内插入图片
      • 设置Word表格的样式
      • 文档中的Table插入新行并赋值
        • 删除表格中的指定单元格所在行
        • 动态创建数据区域
        • 动态生成Word文件
        • 动态插入图片并设置大小
        • 动态插入二维码(或条形码)图片
      • 用户输入提交

      • JS控制

    • Excel

    • PDF

    • FileMaker

    • PPT

    • 更多

    目录

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

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

    • 查看本示例演示效果
    • 本示例关键代码的编写位置,请参考“开始 - 快速上手”里您所使用的开发语言框架的最简集成代码

    注意

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

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

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

    注意

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

    # 后端代码

          PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
      
          WordDocumentWriter doc = new WordDocumentWriter();
          //打开数据区域
          DataRegionWriter dataRegion = doc.openDataRegion("PO_regTable");
          //打开table,openTable(index)方法中的index代表Word文档中table位置的索引,从1开始
          WordTableWriter 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相对地址或者文件在服务器上的磁盘路径两种方式
          poCtrl.webOpen("D:\\template1.docx", OpenModeType.docNormalEdit, "张三");
      
      PageOfficeNetCore.PageOfficeCtrl poCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
      
      PageOfficeNetCore.Word.WordDocumentWriter doc = new PageOfficeNetCore.Word.WordDocumentWriter();
      //获取Table所在的数据区域对象
      PageOfficeNetCore.Word.DataRegionWriter dataRegion = doc.OpenDataRegion("PO_regTable");
      //打开table,OpenTable(index)方法中的index代表Word文档中table位置的索引,从1开始
      PageOfficeNetCore.Word.WordTableWriter  table = dataRegion.OpenTable(1);
      //给table中的单元格赋值, OpenCellRC(行, 列)
      table.OpenCellRC(3, 1).Value = "A公司";
      table.OpenCellRC(3, 2).Value = "开发部";
      table.OpenCellRC(3, 3).Value = "李清";
      //插入一空行,InsertRowAfter方法中的参数表示在哪个单元格下面插入一行
      table.InsertRowAfter(table.OpenCellRC(3, 3));
      
      table.OpenCellRC(4, 1).Value = "B公司";
      table.OpenCellRC(4, 2).Value = "销售部";
      table.OpenCellRC(4, 3).Value = "张三";
      
      poCtrl.SetWriter(doc);
      //webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
      poCtrl.WebOpen("doc/test.doc", PageOfficeNetCore.OpenModeType.docNormalEdit, "tom");
      
      // Make sure to add code blocks to your code group

      # 前端代码

      本示例无前端关键代码。

      上次更新: 2025/08/07, 13:40:45
      PageOffice | Copyright © 2013-2026 卓正软件 京ICP备12010902号-2 京公网安备 11010502019270号
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式