Manipular matrizes dinâmicas e vazamento usando a API JavaScript do Excel
Este artigo fornece um exemplo de código que lida com matrizes dinâmicas e vazamento de intervalo usando a API JavaScript do Excel. Para obter a lista completa de propriedades e métodos compatíveis com o Range
objeto, consulte Classe Excel.Range.
Matrizes dinâmicas
Algumas fórmulas do Excel retornam matrizes dinâmicas. Estes preenchem os valores de várias células fora da célula original da fórmula. Esse estouro de valor é chamado de "derramamento". Seu suplemento pode encontrar o intervalo usado para um derramamento com o método Range.getSpillingToRange . Há também uma versão *OrNullObject, Range.getSpillingToRangeOrNullObject
.
O exemplo a seguir mostra uma fórmula básica que copia o conteúdo de um intervalo em uma célula, que se espalha em células vizinhas. Em seguida, o suplemento registra o intervalo que contém o derramamento.
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}.`);
});
Vazamento de intervalo
Localize a célula responsável pelo derramamento em uma determinada célula usando o método Range.getSpillParent . Observe que getSpillParent
só funciona quando o objeto range é uma única célula. Chamar getSpillParent
um intervalo com várias células resultará em um erro sendo gerado (ou um intervalo nulo sendo retornado para Range.getSpillParentOrNullObject
).