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");
}
非常简单的问题,但我似乎找不到我要找的东西,想知道是否可以这样,只是开始使用 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");
}