Excel File (test1.xlsx)
Имя Пол Возраст Resign Дата
Али М Абу М Сити F апач пои indexoutofbound исключениеКод
public class ReadExcel { public static ArrayList<String> record; public static void main(String[] args) throws FileNotFoundException, IOException { //---Read file--- FileInputStream in = new FileInputStream("test1.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(in); XSSFSheet spreadsheet = workbook.getSheetAt(0); XSSFRow row; Cell cell; Iterator<Row> rowIterator = spreadsheet.iterator(); while(rowIterator.hasNext()){ record = new ArrayList<String>(); row = (XSSFRow)rowIterator.next(); if(row.getRowNum()==0) { continue; } for(int k = 0; k < row.getLastCellNum();k++){ cell = row.getCell(k, Row.CREATE_NULL_AS_BLANK); } Iterator<Cell> cellIterator = row.cellIterator(); while(cellIterator.hasNext()){ cell = cellIterator.next(); cell.setCellType(Cell.CELL_TYPE_STRING); switch(cell.getCellType()){ case Cell.CELL_TYPE_STRING: record.add(cell.getStringCellValue()); System.out.print(cell.getStringCellValue()); break; case Cell.CELL_TYPE_NUMERIC: Double value = cell.getNumericCellValue(); Long longValue = value.longValue(); record.add(Double.toString(cell.getNumericCellValue())); System.out.print(cell.getNumericCellValue()); break; } } System.out.println(); String name = record.get(0); String gender = record.get(1); String age = record.get(2); String dateLeave = record.get(3); //[ERROR] System.out.println(name + gender + age + dateLeave); } } }
Однако, с моей вышеупомянутой программы, я получаю это исключение:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at ibguobform.ReadExcel.main(ReadExcel.java:66)
Java Result: 1
Что ошибки, которые я сделал?
Вы отлажены это ? – Tdorno