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

如何在Office Script中将选定区域转换为单元格地址数组?

在Office Scripts中将选定区域转换为单个单元格地址列表

要将Excel选中区域拆分为[A1, A2, A3, B1, B2]这样的单个单元格地址列表,你需要遍历选中的每个区域,并逐个提取单元格地址。以下是可行的Office Scripts实现代码:

function main(workbook: ExcelScript.Workbook) {
  workbook.getWorksheet("Sheet1").activate();
  const selectedRanges = workbook.getSelectedRanges();
  const cellAddresses: string[] = [];

  // 遍历每一块选中的区域
  selectedRanges.forEach(range => {
    const rowCount = range.getRowCount();
    const colCount = range.getColumnCount();

    // 遍历区域内的每个单元格
    for (let rowOffset = 0; rowOffset < rowCount; rowOffset++) {
      for (let colOffset = 0; colOffset < colCount; colOffset++) {
        const cell = range.getCell(rowOffset, colOffset);
        // getAddress(false) 返回不带工作表名称的地址,如"A1"
        cellAddresses.push(cell.getAddress(false));
      }
    }
  });

  console.log(cellAddresses);
  return cellAddresses;
}

关键说明:

  • workbook.getSelectedRanges()返回的是选中的所有区域数组(支持不连续选区),而非单个范围字符串。
  • 对每个区域,通过getRowCount()、getColumnCount()获取区域大小,结合偏移量遍历所有单元格。
  • getCell(rowOffset, colOffset)用于定位区域内的单个单元格,getAddress(false)生成不带工作表前缀的简洁地址(若需要带表名,传入true即可)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:03:19