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

    • 更多

    目录

    数据区域生成表格

    # 数据区域生成表格

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

    注意

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

    在实际项目的开发中会遇到这样的需求:要求在生成word文件的时候,在文件的指定位置动态生成表格并填充。

    public Table createTable(int numRows,
                             int numColumns,
                             WdAutoFitBehavior autoFitBehavior)
                      throws java.lang.Exception
    

    参数:

    • numRows 新表格的行数。
    • numColumns 新表格的列数。
    • autoFitBehavior 用于设置 Word 调整表格大小的“自动调整”规则。

    数据区域生成表格通常有两种使用场景:

    1. 在word文档已有的指定的数据区域位置动态生成表格。
      //在word中指定的"PO_table1"的数据区域内动态创建一个3行5列的表格
      Table table1 = doc.openDataRegion("PO_table1").createTable(3, 5, WdAutoFitBehavior.wdAutoFitWindow);
      
      //在word中指定的"PO_table1"的数据区域内动态创建一个3行5列的表格
      PageOfficeNetCore.Word.WordTableWriter  table1 = 
            doc.OpenDataRegion("PO_table1").CreateTable(3, 5, PageOfficeNetCore.Word.WdAutoFitBehavior.wdAutoFitWindow);
      
      // Make sure to add code blocks to your code group
      1. 在 word 文档开始或者末尾处动态生成表格。这种场景就需要依赖 PageOffice 预留的两个特殊数据区域:[HOME]和[END]动态创建数据区域,然后根据新生成的数据区域动态生成表格。
        //在word文档的末尾处动态创建一个3行5列的表格。具体代码步骤是先根据PageOffice预留[END]数据区域动态创建"PO_table1",然后在"PO_table1"处动态创建3行5列的表格。
        Table table1 = doc.createDataRegion("PO_table1",DataRegionInsertType.After, "[END]").createTable(3, 5, WdAutoFitBehavior.wdAutoFitWindow);
        
        //在word文档的末尾处动态创建一个3行5列的表格。具体代码步骤是先根据PageOffice预留[END]数据区域动态创建"PO_table1",然后在"PO_table1"处动态创建3行5列的表格。
        PageOfficeNetCore.Word.WordTableWriter  table1 =
              doc.CreateDataRegion("PO_table1", PageOfficeNetCore.Word.DataRegionInsertType.After, "[END]").CreateTable(3, 5, PageOfficeNetCore.Word.WdAutoFitBehavior.wdAutoFitWindow);
        
        // Make sure to add code blocks to your code group

        # 后端代码

        例如:在当前 word 文件的末尾处生成一个 3 行 5 列的表格并动态填充。

          PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
          WordDocumentWriter doc = new WordDocumentWriter();
          DataRegion dr = doc.createDataRegion("PO_table1",DataRegionInsertType.After, "[END]");
          Table table1 = dr.createTable(3, 5, WdAutoFitBehavior.wdAutoFitWindow);
          for (int i = 1; i < 4; i++) {
              table1.openCellRC(i, 1).setValue("AA" + String.valueOf(i));
              table1.openCellRC(i, 2).setValue("BB" + String.valueOf(i));
              table1.openCellRC(i, 3).setValue("CC" + String.valueOf(i));
              table1.openCellRC(i, 4).setValue("DD" + String.valueOf(i));
              table1.openCellRC(i, 5).setValue("EE" + String.valueOf(i));
          }
          poCtrl.setWriter(doc);
          //打开Word文件
          poCtrl.webOpen("D:\\template1.docx", OpenModeType.docNormalEdit, "张三");
          
          PageOfficeNetCore.PageOfficeCtrl poCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
          PageOfficeNetCore.Word.WordDocumentWriter doc = new PageOfficeNetCore.Word.WordDocumentWriter();
          PageOfficeNetCore.Word.DataRegionWriter dr = wordDoc.CreateDataRegion("PO_table1", PageOfficeNetCore.Word.DataRegionInsertType.After, "[END]");
          PageOfficeNetCore.Word.WordTableWriter  table1 = dr.CreateTable(3, 5, PageOfficeNetCore.Word.WdAutoFitBehavior.wdAutoFitWindow);
          for (int i = 1; i < 4; i++)
          {
              table1.OpenCellRC(i, 1).Value = "AA" + i.ToString();
              table1.OpenCellRC(i, 2).Value = "BB" + i.ToString();
              table1.OpenCellRC(i, 3).Value = "CC" + i.ToString();
              table1.OpenCellRC(i, 4).Value = "DD" + i.ToString();
              table1.OpenCellRC(i, 5).Value = "DD" + i.ToString();
          }
          poCtrl.SetWriter(doc);
          //打开Word文档
          poCtrl.WebOpen("D:\\template1.docx", PageOfficeNetCore.OpenModeType.docNormalEdit, "tom");
          
          // Make sure to add code blocks to your code group

          # 前端代码

          本示例无前端关键代码。

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