NPOI获取行数有问题,难到是BUG?大家来看下。

低调小高 2013-05-27 02:08:33
我是用NPOI进行数据导入,我是先获取一个ISheet然后在ISheet里面用PhysicalNumberOfRows 和 LastRowNum 获取的,正常情况下获取是正确的,但现在遇到一个问题就是我先在Excel里面加入100条数据,然后我选中后面的90条按键盘上的 Delete进行删除而不是用删除单元格,这样问题就来了,再去读取这个文档获取到的 PhysicalNumberOfRows 是100,LastRowNum 是99,按理来说应该是10才对的。

不知道各位有没有遇到过这样的问题,像这样的又要怎么解决呢?在线等。。急啊
...全文
1711 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchenhezhe 2014-10-29
  • 打赏
  • 举报
回复
会不会和合并单元格有关,计算行数就会有错
oreoconansisu 2013-08-02
  • 打赏
  • 举报
回复
是的,如果用删除行就行
  • 打赏
  • 举报
回复
必须做空行,如果你不做空行判断,其实也是可以的,打开EXCEL,选择你的起始位置,向下拉右键删除,你会发现是10行,没啥问题,判断空行就行了
oreoconansisu 2013-08-01
  • 打赏
  • 举报
回复
同理,用IRow.PhysicalNumberOfCells也不能作为判断空行的条件
oreoconansisu 2013-08-01
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
补充说明""也是有数据的表现,
某行数据为"",该行所有单元格格式为"常规" 你可以试试 用NPOI 读取PhysicalNumberOfRows属性会不会将该行列入其中 用NPOI分别读取EXCEL2003,2007格式文件后 发现只要某行中的 某一个单元格的 单元格格式曾经被设为非常规格式 即使后面又设置为常规格式,NPOI在计算PhysicalNumberOfRows行数时也会将该行纳入其中 (前提是单元格的value为空) 楼主,我目前的做法与你一样 只能判断每一列是否都为空 都为空的行就认为是空行 没有其他办法
低调小高 2013-05-27
  • 打赏
  • 举报
回复
我现在就是做了一个空行的验证,判断一下如果一行的每一列都为空的话,那就进入到下一行,就是这解决了
低调小高 2013-05-27
  • 打赏
  • 举报
回复
引用 2 楼 liuchaolin 的回复:
只要一个单元格上有数据,那行就存在,有问题吗?
我就是说,它把全部为空字符串的单元格也当成是数据行了,主要就是用户习惯用 Delete这个键来清空数据,而不是删除整个单元格。
低调小高 2013-05-27
  • 打赏
  • 举报
回复
引用 5 楼 liuqian4243 的回复:
还有,你删除的,是最后90行,还是最前面90行, 也是个问题哦.
我是删除整个后面的90行
Ny-6000 2013-05-27
  • 打赏
  • 举报
回复
还有,你删除的,是最后90行,还是最前面90行, 也是个问题哦.
Ny-6000 2013-05-27
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
补充说明""也是有数据的表现,
对的. 还有一个,看你关闭文件是,光标定位在哪一行,这个可能也有影响的.
md5e 2013-05-27
  • 打赏
  • 举报
回复
补充说明""也是有数据的表现,
md5e 2013-05-27
  • 打赏
  • 举报
回复
只要一个单元格上有数据,那行就存在,有问题吗?
低调小高 2013-05-27
  • 打赏
  • 举报
回复
....不是吧没有人遇到过?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧