jxl因其快速小巧受到大家的欢迎,但是jxl还是有许多不尽如人意的地方。
本文旨在解决jxl读取excel数据时无法自动取掉空行的问题,其实就是添加一个方法。
?
//返回去掉空行的记录数
private
int
getRightRows(Sheet
sheet) {
int
rsCols = sheet.getColumns();
//列数
int
rsRows = sheet.getRows();
//行数
int
nullCellNum;
int
afterRows = rsRows;
for
(
int
i =
1
; i < rsRows; i++) {
//统计行中为空的单元格数
nullCellNum =
0
;
for
(
int
j =
0
; j < rsCols; j++) {
String val = sheet.getCell(j, i).getContents();
val
= StringUtils.trimToEmpty(val);
if
(StringUtils.isBlank(val))
nullCellNum++;
}
if
(nullCellNum >=
rsCols) {
//如果nullCellNum大于或等于总的列数
afterRows--;
//行数减一
}
}
return
afterRows;
}
因为主要考虑空行在Sheet表的最后,所以读取数据时还是顺序读取,空行就不读取了。
如果考虑空行在中间的情况,需要对他进行简单的改造,思路是:读取每一行,判断这一行是否为空行,为空跳过,不为空则进行处理。
?
转自:http://blog.bossma.cn/java/jxl-excel-empty-line/jxl操作Excel导入数据库之空行的处理