You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Office.js Excel插件中从选中区域获取分组行信息

在Office.js Excel插件中获取选中区域分组行信息的方法

核心实现思路

通过Office.js的Excel API,先获取用户选中的单元格区域,再遍历区域内的每一行,利用行的level属性判断分组层级,结合hidden属性判断是否折叠,以此提取分组行的详细信息。

具体代码示例

async function getSelectedGroupedRows() {
  await Excel.run(async (context) => {
    // 获取当前选中区域
    const selection = context.workbook.getSelectedRange();
    selection.load("rowCount, rows");
    await context.sync();

    const groupedRowsData = [];
    // 遍历选中区域内的每一行
    for (let i = 0; i < selection.rowCount; i++) {
      const row = selection.rows.getItemAt(i);
      row.load("level, hidden, rowIndex");
      await context.sync();

      // 筛选出有分组层级的行(level>0代表属于分组)
      if (row.level > 0) {
        groupedRowsData.push({
          行索引: row.rowIndex,
          分组层级: row.level,
          是否折叠: row.hidden
        });
      }
    }

    // 此处可替换为业务逻辑处理
    console.log("选中区域的分组行信息:", groupedRowsData);
  }).catch(err => {
    console.error("获取分组行信息出错:", err);
  });
}

关键API说明

  • context.workbook.getSelectedRange(): 获取用户当前选中的单元格区域
  • row.level: 返回行的分组层级,0表示无分组,数值越大代表分组层级越深
  • row.hidden: 判断该行是否因分组折叠而处于隐藏状态
  • row.rowIndex: 获取行的索引(从0开始计数)

额外技巧

  • 若要定位分组的父行(带折叠/展开按钮的行),可通过判断row.level等于目标层级,且下一行的层级大于当前层级来识别
  • 如需获取某分组下的所有子行,可遍历行时收集连续的、层级高于父行的行数据

内容的提问来源于stack exchange,提问作者Rajath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:10:33