使用 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 范围。