前言:
在开发阶段,编写此模块时需要人工创建一个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:
完结