你们有没有人可以帮我解决这个问题?我想将excel中的所有值存储到Array中,然后在我的代码中使用这些值
例如 -
第1-3行 - 应该执行某些操作 第4-6行 - 应该执行一些操作 第7-9行 - 应该执行一些操作
答案 0 :(得分:0)
您可以使用rowIterator
和cellIterator
循环浏览整个文档,并将值存储在单独的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;
}