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

  • Excel

    • 常用控制

    • 动态填充

      • 单元格填充数据
      • 单元格添加图片
      • 设置单元格的字体样式
      • 单元格赋值并设置文本颜色
      • 设置单元格的对齐方式和背景色
      • 给定义了名称的单元格赋值
      • 给定义了名称的一块区域赋值
        • 对一块区域赋值,并自动增加行
        • 动态生成Excel文件
        • 设置表格线
      • 用户输入提交

    • PDF

    • FileMaker

    • PPT

    • 更多

    目录

    给定义了名称的一块区域赋值

    # 给定义了名称的一块区域赋值

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

    注意

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

    虽然PageOffice针对Excel数据填充提供了Table对象,解决了填充数据时单元格区域行数不足的问题,但是假如遇到这样一个场景,有10个模板都只需要动态填充同样的一个表格(比如“产品销售表”),但是此表的数据在10个模板中位置不同,针对每一个模板都单独开发一套代码来填充数据代价就太大了。

    要解决上面问题只需两步:

    1. 给每个模板中填充“产品销售表”的区域命名为:report(如下图中B4:F13的区域被命名为report)
    2. 调用WorkbookWriter.SheetWriter对象的openTableByDefinedName方法获取此区域的Table对象,编程赋值即可

    # 后端代码

    在后端编写代码调用webOpen方法打开文件,并创建Workbook对象填充数据。

      PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
      
      WorkbookWriter workBook = new WorkbookWriter();
      SheetWriter sheet = workBook.openSheet("Sheet1");
      //把名称为“report”的区域打开为一个Table对象
      ExcelTableWriter table = sheet.openTableByDefinedName("report", 10, 5, false);
      table.getDataFields().get(0).setValue("轮胎");
      table.getDataFields().get(1).setValue("100");
      table.getDataFields().get(2).setValue("120");
      table.getDataFields().get(3).setValue("500");
      table.getDataFields().get(4).setValue("120%");
      table.nextRow();
      table.close();
      
      poCtrl.setWriter(workBook); //必须。
      //webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
      poCtrl.webOpen("D:\\documents\\test.xlsx", OpenModeType.xlsNormalEdit, "");
      
      PageOfficeNetCore.PageOfficeCtrl poCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
      
      PageOfficeNetCore.Excel.WorkbookWriter wk = new PageOfficeNetCore.Excel.WorkbookWriter();
      PageOfficeNetCore.Excel.SheetWriter sheet = wk.OpenSheet("Sheet1");
      //把名称为“report”的区域打开为一个Table对象
      PageOfficeNetCore.Excel.ExcelTableWriter table = sheet.OpenTableByDefinedName("report", 10, 5, false);
      table.DataFields[0].Value = "轮胎";
      table.DataFields[1].Value = "100";
      table.DataFields[2].Value = "120";
      table.DataFields[3].Value = "500";
      table.DataFields[4].Value = "120%";
      table.NextRow();
      table.Close();
      
      poCtrl.SetWriter(wk);// 注意不要忘记此代码,如果缺少此句代码,不会赋值成功。
      //webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
      poCtrl.WebOpen("doc/test.xls", PageOfficeNetCore.OpenModeType.xlsNormalEdit, "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号
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式