使用 Excel JavaScript API 处理动态数组和溢出

本文提供了一个代码示例,该示例使用 Excel JavaScript API 处理动态数组和范围溢出。 有关对象支持的属性和方法 Range 的完整列表,请参阅 Excel.Range 类

动态数组

某些 Excel 公式返回 动态数组。 这些值将填充公式原始单元格之外的多个单元格的值。 此值溢出称为“溢出”。 加载项可以使用 Range.getSpillingToRange 方法找到用于溢出的区域。 还有一个 OrNullObject 版本Range.getSpillingToRangeOrNullObject

下面的示例演示了一个基本公式,该公式将区域的内容复制到单元格中,该单元格将溢出到相邻单元格中。 然后,加载项将记录包含溢出的范围。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    // Set G4 to a formula that returns a dynamic array.
    let targetCell = sheet.getRange("G4");
    targetCell.formulas = [["=A4:D4"]];

    // Get the address of the cells that the dynamic array spilled into.
    let spillRange = targetCell.getSpillingToRange();
    spillRange.load("address");

    // Sync and log the spilled-to range.
    await context.sync();

    // This will log the range as "G4:J4".
    console.log(`Copying the table headers spilled into ${spillRange.address}.`);
});

范围溢出

使用 Range.getSpillParent 方法查找负责溢出到给定单元格的单元格。 请注意, getSpillParent 仅当 range 对象是单个单元格时有效。 对具有多个单元格的区域调用 getSpillParent 将导致 (引发错误,或者为 Range.getSpillParentOrNullObject) 返回 null 范围。

另请参阅