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

使用Excel Script循环工作表提取表格数据至Power Automate

解决方案

你的脚本存在几个关键问题:仅指定了单个工作表、未实际提取表格行数据、没有收集并返回合并后的数组。以下是修改后的完整脚本,可实现遍历所有工作表、提取唯一表格行数据并合并返回的需求:

function main(workbook: ExcelScript.Workbook): object[] {
  // 初始化主数组存储所有合并数据
  let masterData: object[] = [];

  // 获取工作簿内所有工作表
  const allWorksheets = workbook.getWorksheets();

  // 遍历每个工作表
  allWorksheets.forEach(worksheet => {
    const tables = worksheet.getTables();
    // 检查当前工作表是否存在表格(按需求每个表只有一个)
    if (tables.length > 0) {
      const targetTable = tables[0];
      // 获取表格的所有单元格值(第一行为表头)
      const tableValues = targetTable.getRange().getValues();
      const headers = tableValues[0] as string[];

      // 从第二行开始处理数据行,转换为键值对对象(适配Power Automate处理)
      for (let rowIndex = 1; rowIndex < tableValues.length; rowIndex++) {
        const row = tableValues[rowIndex];
        const rowObj: Record<string, any> = {};
        headers.forEach((header, colIndex) => {
          rowObj[header] = row[colIndex];
        });
        masterData.push(rowObj);
      }
    }
  });

  // 返回合并后的数组给Power Automate
  return masterData;
}

关键修改说明

  • 遍历所有工作表:使用workbook.getWorksheets()获取工作簿内全部工作表,而非固定指定Sheet1
  • 数据收集逻辑:初始化masterData数组,手动将每个表格的行数据推入数组(原脚本的forEach返回操作无效,无法收集数据)
  • 提取行数据并格式化:通过getRange().getValues()获取表格的原始值,将表头作为对象键、行数据作为值,转换为对象数组(这种格式在Power Automate中更易进行后续操作)
  • 容错处理:添加表格存在性判断,避免无表格的工作表导致报错
  • 明确返回值:函数指定返回object[]类型,确保Power Automate能正确接收合并后的数组

如果需要返回纯二维数组(不含键值对,仅行列数据),可以使用以下简化版本:

function main(workbook: ExcelScript.Workbook): any[][] {
  let masterData: any[][] = [];
  let hasAddedHeaders = false;

  workbook.getWorksheets().forEach(worksheet => {
    const tables = worksheet.getTables();
    if (tables.length > 0) {
      const tableValues = tables[0].getRange().getValues();
      // 仅保留一次表头,后续只添加数据行
      if (!hasAddedHeaders) {
        masterData.push(tableValues[0]);
        hasAddedHeaders = true;
        masterData.push(...tableValues.slice(1));
      } else {
        masterData.push(...tableValues.slice(1));
      }
    }
  });

  return masterData;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:26:21