在 Office 脚本中获取数组中元素的值

Getting value of an element in an array in Office Scripts

我一直在努力使一个变量等于数组中特定元素的值,我希望有人能提出建议。在这种情况下,我试图获取单元格 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)
}

如有任何帮助,我们将不胜感激!

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#get-values-text-or-formulas

第二个是 getRange("E5:AD5"),您将获得一行值。 months.values 因此将以数组(行)的形式保存值,该数组(行)包含一个包含值的数组(列)。类似于:

[
  ["cell E5", "cell F5", "cell G5", ...]
]

所以一行,很多列。

但是通过执行 months[1],您正在尝试访问此集合的 second 行。第一行是months[0].

列也一样,第一列是索引0。所以你组的第一个单元格的值为 months.values[0][0].