我想阅读一张excel表 所以我想读取我的第一列数据并迭代所有行然后第二列 那怎么办呢。
我尝试先使用行迭代,然后再使用coloumn
Iterator < Row > rowIterator = sheetName.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator < Cell > cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
}
}
答案 0 :(得分:1)
如果我理解你正确的问题,那么你试图首先迭代列然后行。这是你可能想要做的。希望它有所帮助:
Sheet sheet = workbook.getSheetAt(0);
for(int i=0; i<sheet.getRow(sheet.getTopRow()).getLastCellNum(); i++){
Iterator<Row> rowIterator=sheet.rowIterator();
while(rowIterator.hasNext()){
System.out.println(rowIterator.next().getCell(i)); //do what you want
}
}
答案 1 :(得分:0)
如果我理解这个问题,则想从excel逐列读取数据。即读取整个Column1,然后移至Column2,依此类推。
如果这是您的要求,请在Java中找到代码段。
// Getting List of Column Headers in the sheet and saving the same to a list
int masterSheetColumnIndex = sheet.getColumns();
List<String> ExpectedColumns = new ArrayList<String>();
for (int x = 0; x < masterSheetColumnIndex; x++) {
Cell celll = sheet.getCell(x, 0);
String d = celll.getContents();
System.out.println("d : "+d);
ExpectedColumns.add(d);
}
columnDataValues = new LinkedHashMap<String, List<String>>();
List<String> column1 = new ArrayList<String>();
// read values from excel sheet for each column
for (int j = 0; j < masterSheetColumnIndex; j++) {
column1 = new ArrayList<String>();
for (int i = 1; i < sheet.getRows()-7; i++) {
Cell cell = sheet.getCell(j, i);
column1.add(cell.getContents());
System.out.println("cell.getContents() : "+cell.getContents());
}
columnDataValues.put(ExpectedColumns.get(j), column1);
}
如果以上代码中有任何查询,请还原。