如何实际减少工作表的使用范围(Excel插件)

问题描述 投票:0回答:1

我的插件从每张纸上删除了很多行,但是当我按ctrl + end时,光标仍然移动到初始范围的最后一个单元格,现在该单元格为空。这是我正在做的删节版:

const used_range = sheet.getUsedRange()

const rows = used_range.rowCount
const columns = used_range.columnCount

const full_content = this.format(used_range) // returns a new matrix of values, but with some rows removed

used_range.clear()

sheet.getRangeByIndexes( 0 , 0, full_content.length, columns ).values = full_content
sheet.getRangeByIndexes( full_content.length, 0, (rows - full_content.length), columns ).delete('Up')

await context.sync()

第二个sheet.getRangeByIndexes包含剩余的范围。如果我为填充设置颜色,则可以看到所选范围是正确的,因此我希望调用delete('Up')会删除行,因此它们不再属于使用范围,而是工作表的最后一行仍然是删除它们之前的那个。这是一个问题,因为即使这些行为空,这些行也会影响文件的大小。

有趣的是,如果我执行used_range.delete('Up')并按ctrl + end,则将选择单元格A1。

是否有一种方法可以强制缩小图纸范围?还是我做错了?

excel office-js office-addins
1个回答
0
投票

[从excel中删除(以前使用的)单元格时,使用的范围不一定立即重置。我不确定为什么要努力寻找有关它的文档,但这很可能是因为上一动作仍然是可逆的。

要解决此问题,您可以保存文件,或关闭并再次打开它。 Excel随后将正确地重新计算使用的范围,并且将按预期显示。

© www.soinside.com 2019 - 2024. All rights reserved.