我使用以下方法從 excel (csv) 作業表中讀取資料:
InputStream inputStream = new BufferedInputStream(multipartFile.getInputStream());
XSSFWorkbook myWorkBook = new XSSFWorkbook(inputStream);
List<String> cellList = new ArrayList<>();
XSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator<Row> rowIterator = mySheet.iterator();
rowIterator.next();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
cellList.clear();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) { // this returns false even the cell has data
Cell cell = cellIterator.next();
cellList.add(cell.getStringCellValue());
}
}
我想讓cellIterator.hasNext()第二行(名稱)中的空單元格值回傳 true。那么,我該怎么做呢?
Create Date Uuid Name
2021-09-29 2e81a2b6-3226-4fe0-b8bd-39f42239686d admin
2021-09-30 610e9040-840c-48c5-aa64-f193ed896133
uj5u.com熱心網友回復:
cellIterator.hasNext()對于空的“名稱”單元格,您無法回傳 true。
如果您事先知道列數,則可以使用回圈和row.getCell(index)。
for (int i = 0; i < 3; i ) {
Cell cell = row.getCell(i);
cellList.add(cell == null ? "Empty":cell.toString());
}
如果不這樣做,則必須先掃描檔案以計算列數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/313615.html
上一篇:如何使用熊貓一次計算多列中的值
下一篇:為給定行中的每個唯一值添加列
