智能导入数组元素通过切片器到Excel,使用智能标记

为什么通过切片器访问数组元素

在FastReport的智能标记中,使用切片器(例如 [array[1..3]])访问数组元素,提供了一种简洁高效的处理数据子集的方法。

  1. 简化数据提取:手动遍历大型数组需要循环和复杂语法。切片器允许用一行代码提取范围(子数组)。例如:[Products[1..5].Name] 获取前5个产品的名称。
  2. 动态报告:为可变数据切片生成报告(例如“前N项”,分页视图)。例如:[Sales[0..{PageNo*10}]],动态加载多页数据。
  3. 性能优化:避免将整个位数组加载到内存中。仅获取所需元素。例如:[Logs[^10..^1]] 有效地检索最后10条记录。
  4. 声明式语法:在模板标记中直接表达意图。例如:[Employees[3..7].Department],清晰选择第3到7条的部门信息。
  5. 与数据源的集成:支持来自数据库、JSON或代码的数组。例如,将Invoice.Items[0..2]绑定以显示前3条明细。
  6. 智能标记中的切片器可以减少代码复杂性,增强可读性,并优化数组子集的数据处理。需要快速、基于范围的访问时使用——非常适合分页、前N列表或窗口数据视图。

如何在带有智能标记的Excel中通过切片器导入数组元素

Aspose.Cells支持在智能标记中通过切片器访问数组元素。请查看模板文件json文件以及使用以下代码生成的输出Excel文件的截图。

smartmarker.xlsx 文件中的第一个工作表显示智能标记。
todo:image_alt_text
输出Excel文件的截图。
todo:image_alt_text

如下所示的Json数据:

{
  "EntityCin": "EntityCin Test",
  "EntityName": "EntityName Test",
  "FirstName": "FirstName Test",
  "MiddleName": "MiddleName Test",
  "LastName": "LastName Test",
  "DOB": "2025-02-08",
  "SSN": "11111111",
  "Directors": [
    {
      "id": "director id 1",
      "FirstName": "director first 1",
      "MiddleName": "director middle 1",
      "LastName": "director last 1",
      "Reportees": [
        {
          "id": "aaa",
          "FirstName": "first aaa",
          "MiddleName": "middle aaa",
          "LastName": "last aaa",
          "Department": "aaa department",
          "City": "aaa city",
          "GST": "Yes",
          "ITR": "No"
        },
        {
          "id": "bbb",
          "FirstName": "first bbb",
          "MiddleName": "middle bbb",
          "LastName": "last bbb",
          "Department": "bbb department",
          "City": "bbb city",
          "GST": "Yes",
          "ITR": "Yes"
        },
        {
          "id": "ccc",
          "FirstName": "first ccc",
          "MiddleName": "middle ccc",
          "LastName": "last ccc",
          "Department": "ccc department",
          "City": "ccc city",
          "GST": "No",
          "ITR": "No"
        }
      ]
    },
    {
      "id": "director id 2",
      "FirstName": "director first 2",
      "MiddleName": "director middle 2",
      "LastName": "director last 2",
      "Reportees": [
        {
          "id": "eee",
          "FirstName": "first eee",
          "MiddleName": "middle eee",
          "LastName": "last eee",
          "Department": "eee department",
          "City": "eee city",
          "GST": "Yes",
          "ITR": "No"
        },
        {
          "id": "fff",
          "FirstName": "first fff",
          "MiddleName": "middle fff",
          "LastName": "last fff",
          "Department": "fff department",
          "City": "fff city",
          "GST": "No",
          "ITR": "No"
        }
      ]
    },
    {
      "id": "director id 3",
      "FirstName": "director first 2",
      "MiddleName": "director middle 2",
      "LastName": "director last 2",
      "Reportees": [
        {
          "id": "eee3",
          "FirstName": "first eee3",
          "MiddleName": "middle eee3",
          "LastName": "last eee3",
          "Department": "eee department3",
          "City": "eee city3",
          "GST": "Yes",
          "ITR": "No"
        },
        {
          "id": "fff3",
          "FirstName": "first fff3",
          "MiddleName": "middle fff3",
          "LastName": "last fff3",
          "Department": "fff department3",
          "City": "fff city",
          "GST": "No",
          "ITR": "No"
        }
      ]
    },
    {
      "id": "director id 4",
      "FirstName": "director first 4",
      "MiddleName": "director middle 4",
      "LastName": "director last 4",
      "Reportees": [
        {
          "id": "eee4",
          "FirstName": "first eee4",
          "MiddleName": "middle eee4",
          "LastName": "last eee4",
          "Department": "eee department4",
          "City": "eee city4",
          "GST": "Yes",
          "ITR": "No"
        },
        {
          "id": "fff4",
          "FirstName": "first fff4",
          "MiddleName": "middle fff4",
          "LastName": "last fff4",
          "Department": "fff department4",
          "City": "fff city4",
          "GST": "No",
          "ITR": "No"
        }
      ]
    }
  ]
}

以下示例演示了其工作原理。