java - poi - excel导入读取行数不正确 | java - poi - excel导入无法获取正确行数 | getLastRowNum()行数不正确 | getPhysicalNumberOfRows()行数不正确

前言:

在开发阶段,编写此模块时需要人工创建一个excel模板,用于存储规定格式的数据,比如几行、几列等。以用于测试代码是否开发正确。

关于怎么读取这里不多作介绍,本篇文章主要讲解读取过程中 有关 读取行数不正确的问题以及解决方法


0x001:

创建excel模板时,不管你有几行几列,需要注意一点,

“不在模板行 及 模板列 范围内的 请不要去动”

通俗一点讲,现在excle里有2行5列,第1行为告诉用户导入时需要注意的事项,第2行为表头,例如:学号,姓名,班级,年龄,专业

这两行可能会需要设置“格式”,比如字体大小,颜色,居中等等。

到此为止,poi的getLastRowNum()及getPhysicalNumberOfRows()返回结果是正确的。



                                                 getLastRowNum() 从0开始



0x002:

接下来就是可能会 犯错误 的地方,excel创建出来,行高及列宽都是很小的,不方便阅读及填写。

可能会去给它设置行高及列宽,以达到能撑开输入字体所占的空间大小,

这个时候如果将 没有填充数据的行 也去 设置 

行高或列宽或字体大小等等其他非默认格式

就会造成poi 的误读,导致行数不正确

不管是getLastRowNum()还是getPhysicalNumberOfRows(),都不会达到你想到的行数。




                                其实真实数据就3行 : 模板数据占2行+有效数据占1行


0x003:

所以,没有填入数据的行和列,请保持原始默认格式不要设置任何格式

一旦设置了,三种解决方法:

1、对设置格式的行进行填充数据。

2、选中带有格式的全部行,删除。

3、重新建表


0x004:

完结

推荐阅读更多精彩内容

  • 使用首先需要了解他的工作原理 1.POI结构与常用类 (1)创建Workbook和Sheet (2)创建单元格 (...
    长城ol阅读 6,298评论 1 23
  • POI操作Excel Excel简介一个excel文件就是一个工作簿workbook,一个工作簿中可以创建多张工作...
    FastCoder阅读 3,895评论 2 48
  • 转自链接 目录 1.认识NPOI 2.使用NPOI生成xls文件 2.1创建基本内容 2.1.1创建Workboo...
    腿毛裤阅读 5,367评论 0 1
  • 原文链接 POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序...
    YoRuo_阅读 1,064评论 0 4
  • 上周说到新时代创业的话题,其实我们身边不乏有很多年轻人都有一颗想创业的心,我曾经也是其中的一名,想过开一间一...
    逆逆nini阅读 38评论 4 2