java excel读取一列

我有一个列(B),我需要采取B3和B20之间的所有值

这是我的代码

try { OPCPackage fs; fs = OPCPackage.open(new File(getFilePath())); XSSFWorkbook wb = new XSSFWorkbook(fs); XSSFSheet sheet = wb.getSheet("Master column name - Used Car"); XSSFRow row; CellReference cr = new CellReference("B3"); row = sheet.getRow(4); System.out.println(row); 

但正如你所看到的,我得到一个值,我不知道如何获得单元格B3的值,直到B20

你能帮忙吗?

你有尝试更换这一行:

 CellReference cr = new CellReference("B3"); 

有:

 AreaReference ar = new AreaReference("B3:B20"); 

 AreaReference ar = new AreaReference("B3:B20"); for (cr : ar.getAllReferencedCells()) { System.out.print(cr.formatAsString()); System.out.print(" - "); } System.out.println(); 

要从Excel中读取某些列或单元格的值,可以试试这个

 public static void readFromExcel2(){ try{ FileInputStream file = new FileInputStream(new File("java_excel.xlsx"));//place path of your excel file XSSFWorkbook workbook = new XSSFWorkbook(file); XSSFSheet sheet = workbook.getSheetAt(1);//which sheet you want to read Iterator<Row> rowIterator = sheet.iterator(); while(rowIterator.hasNext()){ Row row = rowIterator.next(); Iterator<Cell> cellIterator = row.cellIterator(); while(cellIterator.hasNext()){ Cell cell = cellIterator.next(); if(cell.getColumnIndex()<2&&(cell.getRowIndex()>=3&&cell.getRowIndex()<=20)) { { switch (cell.getCellType()) { case Cell.CELL_TYPE_NUMERIC: System.out.print((int) cell.getNumericCellValue()+" \t" ); break; case Cell.CELL_TYPE_BLANK: System.out.print(" "); break; case Cell.CELL_TYPE_STRING: { System.out.print(cell.getStringCellValue()); } } } } } System.out.println(" "); } file.close(); }catch (Exception e){ e.printStackTrace(); } } 

}