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

作者在处理数据时发现getLastRowNum()和getLastCellNum()在获取行数和列数时的行为不同寻常,行数少一行,而列数多一列。深入源码后揭示了这种设计的潜在问题,提醒开发者注意这种ExcelAPI中的不一致性。
摘要由CSDN通过智能技术生成

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

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

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

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值