我有excel文件(*.xls
或*.xlxs
),它可以有記錄或沒有記錄。首先,我將文件存儲在某個臨時位置,然後複製文件的內容,然後嘗試讀取文件。如果Excel工作表包含記錄,但如果工作表沒有記錄且文件爲空,則此方案工作正常。這種情況不起作用。我正在使用apache-poi來讀取excel文件內容。如何檢查excel文件是否爲空?
public static boolean isRowEmpty(Row row) {
for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) {
Cell cell = row.getCell(c);
if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) {
return false;
}
}
return true;
}
我得到IOException : unable to read entire header 0 bytes read expected 512 bytes
。有人可以建議我擺脫這種異常並檢查excel文件是否爲空?
如果該文件真的是空的(0字節),則它不是有效的XLS文件。所以你應該在用apache-poi打開之前檢查文件的大小。請參閱File.length方法:https://docs.oracle.com/javase/7/docs/api/java/io/File.html#length()。 – Xvolks
@Xvolks該文件存在,所以File.length()將返回一個值,它不會是0L,因此該檢查不適用。 – Harleen
@Harleen,請查看我的回答 –