Получение значения элемента в массиве в сценариях Office
Я пытался сделать переменную равной значению определенного элемента в массиве, и я надеялся, что у кого-то есть предложение. В этом случае я пытаюсь получить значение в ячейке E5
async function main(context: Excel.RequestContext){
let workbook = context.workbook;
let worksheets = workbook.worksheets;
let sheet1 = worksheets.getItem("Sheet1");
var currentMonth = 1
var months = sheet1.getRange("E5:AD5");
months.load("values")
await context.sync();
monthValue = months[1][currentMonth].value
console.log(monthValue.values)
}
Любая помощь будет принята с благодарностью!
1 ответ
tl;dr
+ Изменить months[1][currentMonth].value
к months.values[0][currentMonth]
.
Детали
Здесь две проблемы. Во-первых, чтобы получить доступ к загруженным значениям, вам нужно написатьmonths.values
как показано здесь: https://docs.microsoft.com/en-us/office/dev/add-ins/excel/excel-add-ins-ranges
Во-вторых, что с getRange("E5:AD5")
, вы получаете одну строку значений. months.values
таким образом будет содержать значения в форме массива (строк), содержащего массив (столбцы), содержащий значения. Что-то типа:
[
["cell E5", "cell F5", "cell G5", ...]
]
Итак, одна строка, много столбцов.
Но делая months[1]
вы пытаетесь получить доступ ко второй строке этого набора. Первая строкаmonths[0]
.
То же самое и со столбцами, первый столбец - индекс 0
. Итак, значение первой ячейки вашего набора равноmonths.values[0][0]
.