使用getLastRowNum()和getLastCellNum()获取的结果不准确的问题

那天在处理数据的时候,发现使用getLastRowNum()获取数据行数少了一行,特喵的,差点因为这事搞出大问题,看了一下源码才知道怎么回事。

正常来说,如果有5行数据,使用getLastRowNum()如果标识行数的下标,那就应该是4(0-4),如果有5列,使用getLastCellNum()获取也应该是4(0-4),但是5行获取的是4,5列获取的却是5,如果没被这地方坑过,肯定要出问题的。

从源码来看,应该是获取的时候的问题,从方法来看,获取行的时候对一个treeMap进行了lastKey的操作,获取的是最后一行的下标,那这样是没问题的啊,but,下面问题就来了

使用getLastRowNum()和getLastCellNum()获取的结果不准确的问题_第1张图片

使用getLastCellNum()的时候进行了加一的操作,这就很诡异了,同样的方法,两种不同的处理方式,如果没掉过这个坑的人,怎么可能知道这地方隐藏着这么大的一个坑,本想骂两句,想想悟空说的那句话,天地本不全,经书也应有不全之理,释怀了

使用getLastRowNum()和getLastCellNum()获取的结果不准确的问题_第2张图片

你可能感兴趣的:(java)