Selenium Webdriver - Java - 如何获取excel的所有值并存储在Array中?

时间:2016-11-09 21:04:24

标签: java excel apache-poi

你们有没有人可以帮我解决这个问题?我想将excel中的所有值存储到Array中,然后在我的代码中使用这些值

例如 -

第1-3行 - 应该执行某些操作 第4-6行 - 应该执行一些操作 第7-9行 - 应该执行一些操作

Question Screenshot

1 个答案:

答案 0 :(得分:0)

您可以使用rowIteratorcellIterator循环浏览整个文档,并将值存储在单独的2D数组中。请查看下面的示例

public static void main(String[] args) {
   ArrayList<String[]> rowsFromExcel = readContentFromExcel();
   for(int i=0;i<rowsFromExcel.size();i++){  //For each rows in excel
      for(int j=0;i<rowsFromExcel.get(i).length;i++){ //For each cell in that row
        System.out.print(rowsFromExcel.get(i)[j]);
      }
   }
}

public static ArrayList<String[]> readContentFromExcel(){
    FileInputStream file = new FileInputStream(new File("pathToFile\\filename.xls"));
    int columnCount = 13; // i have taken the column count form your screenshot.
    ArrayList<String[]> ExcelRows = new ArrayList<String[]>();
    HSSFWorkbook wb = new HSSFWorkbook(file);
    HSSFSheet sheet = wb.getSheetAt(0);
    Iterator<Row> rowIterator = sheet.iterator();
    int cellIndex = 0;
    while (rowIterator.hasNext()) {
      Row row = rowIterator.next();
      Iterator <Cell> cellIterator = row.cellIterator();
      String[] cellValues  = new String[columnCount];
      while (cellIterator.hasNext()) {
           Cell cell = cellIterator.next();
           cellValues[cellIndex++] = cell.getStringCellValue();
           System.out.print(cell.getStringCellValue() + "\t\t");
      }
     ExcelRows.add(cellValues);
     cellIndex=0;
   }

  file.close();
  return ExcelRows;
}