#ms-office #office-js
#ms-office #office-js
Вопрос:
Я привожу пример для проверки поведения JavaScript API над динамическим массивом.
Сначала я ввожу динамический массив =MUNIT(3)
в ячейку A1
листа. Затем я понимаю, что все formulas[0][0]
, formulaR1C1[0][0]
и formulaLocal[0][0]
по диапазону A1
возвращает =MUNIT(3)
. Однако все formulas[0][0]
, formulaR1C1[0][0]
и formulaLocal[0][0]
над другими ячейками, такими как B1
, A2
возвращает пустую строку.
Таким образом, существует ли официальный JavaScript API или официальный способ проверить, находится ли ячейка типа B1
в пределах диапазона динамического массива?
PS: я думаю, один из способов — проверить, является ли формула ячейки пустой, а ее значение непустым, но я надеюсь, что есть способ получше.
Ответ №1:
Да, вы могли бы попробовать наш бета-API, который скоро выйдет, range.hasSpill
и вы также можете получить родительский код с помощью range.getSpillParent()
, вот пример кода, который вы могли бы попробовать.
await Excel.run(async (context) => {
// Check the current cell for any spill parents or spilling-to ranges.
const currentRange = context.workbook.getSelectedRange();
currentRange.load("hasSpill");
await context.sync();
if (currentRange.hasSpill)
{
const spillParent = currentRange.getSpillParentOrNullObject();
spillParent.load("address");
await context.sync();
console.log(`The selected cell has a spill parent: ${spillParent.address}`);
}
});
Пожалуйста, обратите внимание: для предварительного просмотра бета-API вам потребуется обратиться к бета-библиотеке на CDN
https://appsforoffice.microsoft.com/lib/beta/hosted/office.js