Officescript 如何按行索引在 table 单元格 (row/column) 中设置值

Officescript how to set value in table cell (row/column) by row index

非常简单的问题,但我似乎找不到我要找的东西,想知道是否可以这样,只是开始使用 Officescript/typescript。在我的部分代码中,我获得了具有匹配值的行的索引(cRow 是我感兴趣的行的索引)。

  rowValue = collectionTable.getColumnByName("SomeCol").getRangeBetweenHeaderAndTotal().getValues()[cRow]

然后我 运行 对该行进行了一些检查,并希望根据输入更新一些其他内容。

所以我希望做的是类似下面的事情,将 getValues 更改为 setValues:

collectionTable.getColumnByName("UpdateMe").getRangeBetweenHeaderAndTotal().setValues()[cRow]

let col = collectionTable.getColumnByName("SomeCol").getIndex();
let cell = collectionTable.getCell(requestRow,col);

cell.setValue(value);

但似乎不是那样工作的。据我所知,setValues 在范围内工作,但无法完全找到如何通过索引号获取 range/row 并在其中设置一个值细胞。我看到所有的例子都是用字母和数字来做的,但如果可能的话我不想那样做。

感谢您的帮助!

可以通过使用工作表单元格获取值,但我真的很想引用 table 本身,以便在移动等情况下不会有任何问题..

let col = collectionTable.getColumnByName("SomeCol").getIndex(); 

// if table starts at beginning of sheet, or else have to offset col and row..
let cell = dataSheet.getCell(requestRow + 1, col);

cell.setValue(value);

您可以在 getRangeBetweenHeaderAndTotal() 之后使用带有 cRow 变量的 getCell 来获取特定的单元格范围。获得该范围后,您可以使用 getValue() 读取其值。您可以使用 setValue() 将值写入该范围。您可以在下面查看如何执行此操作的示例:

function main(workbook: ExcelScript.Workbook)
{
  let cRow: number = 1;
  let tbl: ExcelScript.Table = workbook.getTable("table1");
  let rowCell: ExcelScript.Range = tbl.getColumnByName("SomeCol").getRangeBetweenHeaderAndTotal().getCell(cRow,0);
  let rowValue: string = rowCell.getValue() as string;
  rowCell.setValue("some updated value");
}