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

前言:

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

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


0x001:

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

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

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

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

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


java - poi - excel导入读取行数不正确 | java - poi - excel导入无法获取正确行数 | getLastRowNum()行数不正确 | getPhysicalNumberOfRows()行数不正确_第1张图片


java - poi - excel导入读取行数不正确 | java - poi - excel导入无法获取正确行数 | getLastRowNum()行数不正确 | getPhysicalNumberOfRows()行数不正确_第2张图片

                                                 getLastRowNum() 从0开始



0x002:

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

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

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

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

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

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


java - poi - excel导入读取行数不正确 | java - poi - excel导入无法获取正确行数 | getLastRowNum()行数不正确 | getPhysicalNumberOfRows()行数不正确_第3张图片


java - poi - excel导入读取行数不正确 | java - poi - excel导入无法获取正确行数 | getLastRowNum()行数不正确 | getPhysicalNumberOfRows()行数不正确_第4张图片


java - poi - excel导入读取行数不正确 | java - poi - excel导入无法获取正确行数 | getLastRowNum()行数不正确 | getPhysicalNumberOfRows()行数不正确_第5张图片

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


0x003:

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

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

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

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

3、重新建表


0x004:

完结

你可能感兴趣的:(java - poi - excel导入读取行数不正确 | java - poi - excel导入无法获取正确行数 | getLastRowNum()行数不正确 | getPhysicalNumberOfRows()行数不正确)