[英]No exception in JAVA program when it reads xlsx file with XSSFWorkbook class in POI
我正在開發基於Eclipse的Java應用程序。 但我無法捕捉到異常。 我想同時使用HSSF
和XSSF
讀取Excel文件(.xlsx)。 但是HSSF
可以正常工作,否則XSSF則不能。 這是我的代碼。 wb = new XSSFWorkbook(pkg);
之后wb = new XSSFWorkbook(pkg);
聲明程序計數轉到finally聲明。 提前致謝。
try {
if (FileFormat == FILE_FORMAT_XLS) {
fs = new POIFSFileSystem(new FileInputStream(szFileName));
wb = new HSSFWorkbook(fs);
}
// This block does not work properly.
else if (FileFormat == FILE_FORMAT_XLSX) {
file = new File(szFileName);
if (file.exists() == false || file.isFile() == false || file.canRead() == false) {
throw new IOException(szFileName);
}
pkg = OPCPackage.open(file);
wb = new XSSFWorkbook(pkg); // **<- Here is the problem.**
}
if (wb != null) {
evaluator = wb.getCreationHelper().createFormulaEvaluator();
sheetNum = wb.getNumberOfSheets();
for (int i = 0; i < sheetNum; i++) {
for (Row row : wb.getSheetAt(i)) {
person ps = new person();
if (getPerson(row, ps) == true) {
list.add((Object) ps);
log.addLog(list.size() + " " + ps.getName() + ", " + ps.getHanName() + ", " + ps.getEnName() + ", " + ps.getBirthDay() + ", " + ps.getCellPhone() + ", " + ps.getID() + ", " + ps.getAddress());
} else {
log.addLog("total count = " + list.size());
ps = null;
break;
}
}
}
} else {
log.addLog("can not open workbook");
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
if (wb != null) {
wb = null;
}
}
程序是否在沒有捕獲異常的情況下finally
進入? wb對象為null,否則將出現異常堆棧跟蹤。
而且wb對象必須具有適當的類型。 HSSF或XSSF。 嘗試像這樣實例化xssfworkbook
XSSFWorkbook工作簿=新的XSSFWorkbook(szFileName);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.