Я новичок в POI Apache, но то, что я хочу сделать, читается через файл Excel (.xls) и помещает его в ArrayList для хранения, чтобы я мог впоследствии манипулировать. Я могу получить весь лист, но моя проблема в том, что: я получаю весь лист dang (~ 54183 строки).Пропуск пустых ячеек Excel в Apache POI
Я хочу пропустить ячейки, которые пусты, которые имеют тип 3. По какой-то причине, когда я system.out.print ArrayList, у него есть все пустые ячейки.
Есть ли способ пропустить эти и не добавлять их в ArrayList, который я пытаюсь создать?
У меня есть следующий фрагмент кода:
public ArrayList readExcelFile(String filePath) throws IOException {
ArrayList cellVectorHolder = new ArrayList();
try {
FileInputStream inputFile = new FileInputStream(filePath);
POIFSFileSystem myFileSystem = new POIFSFileSystem(inputFile);
HSSFWorkbook wkbk = new HSSFWorkbook(myFileSystem);
wb = wkbk;
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
HSSFSheet wkSheet = wkbk.getSheetAt(i);
for (Row row : wkSheet) {
ArrayList cellVector = new ArrayList();
for (Cell cell : row) {
if(cell.getCellType() != 3){
cellVector.add(cell);
}
}
cellVectorHolder.add(cellVector);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return cellVectorHolder;
}
Не возражаете имена ArrayList ... Я использую векторов, пока я, наконец, обнаружил, что они были амортизируется, так как 1.2 или что-то в этом роде.
Да, это то, что я, наконец, прибегли к. Несколько, если есть другие утверждения, чтобы проверить это. Я просто надеялся на какой-то короткий чистый способ, который у POI. Спасибо, хотя за толкание в правильном направлении! – JHizzal
cell.getStringCellValue() будет вызывать исключение IllegalStateException, если тип ячейки другой, а затем текст (например, числовой). –