Java可以使用apache poi来处理excel。
哦,不是这个poi~
言归正传,这次说的要注意的点和隐藏sheet有关。
众所周时,excel可以有多个sheet(工作簿),而sheet是可以隐藏的。
在处理excel的时候,有时候并不想处理隐藏的sheet,但是一些函数默认是会将隐藏sheet考虑在内,导致一些很难察觉的错误。
Workbook workbook = xxx;
int sheetCount = workbook.getNumberOfSheets();
for (int i = 0; i < sheetCount; i++) {
Sheet sheet = workbook.getSheetAt(i);
// 一些处理
}
比如这段代码getNumberOfSheets()这个方法会返回sheet的数量,包括隐藏的sheet。于是这样的遍历就把隐藏sheet给处理了。
于是该怎么做呢?
Workbook中有方法可以判断是否隐藏,可以使用workbook.isSheetHidden(int sheetIx)先来一个判断。
补充一点,对于excel的sheet的隐藏,还有一个叫做“very hidden”的神奇的类型,网传是通过代码的方式可以进行这种隐藏,具体没有试过。
同样有对应的判断方式:workbook.isSheetVeryHidden(int sheetIx),感兴趣的可以研究下~