如何使用Excel JS API获取ActiveCell周围的当前区域?
在VBA中,这是
Set rng=ActiveCell.CurrentRegion
答案 0 :(得分:1)
JavaScript API 中的当前区域属性现已实现。该属性称为 getSurroundingRegion()
答案 1 :(得分:0)
没有直接的等价物,但我们确实有一个range.getUsedRange()
,它将占用一个现有的范围,并为您提供一个代表非空部分的较小范围。请注意,如果整个范围内没有任何内容,此方法将抛出一个未找到的错误(因为它实际上是一个空的范围,Excel无法表达)。
如果你真的需要CurrentRegion场景(我很想知道更多),你可以先获得使用的范围(以确保你没有加载过多的数据),然后加载values
属性,然后执行range.getExpandedRange(indexOfLastRow, indexOfLastColumn)
。
我的意思是有一些场景,一个更简单,另一个更难。
更简单的:你大致知道你需要的范围,但你只需要修剪它。例如,您知道在A:C列中有一个类似于表的实体,但您不知道行数。那是
worksheet.getRange("A:C").getUsedRange()
可以满足您的需求。
更难的:您使用getUsedRange()
减少了所需的内容,但随后加载range.values
并手动搜索每个单元格所在的行和列空(""
)。一旦你有了(假设你发现你关心的相对行索引是5,列索引2),你可以做到
originalRange.getCell(0, 0).getExpandedRange(rowIndex, columnIndex)
上面的具体示例:你有A2:C7中的数据,虽然工作表的getUsedRange()要大得多(因此我的建议可能会尝试通过执行range.getUsedRange()
进一步削减它)。但是对于这种情况,让我们假设工作表上的getUsedRange返回了与A1:Z100相对应的范围。 worksheet.getRange(0, 0)
将为您提供第一个单元格,然后您可以通过5行和2列(通过简单的尽管繁琐的数组迭代找到)扩展,以获得您关注的范围。有意义吗?