我正在开发一个在Netbeans上使用Java的小应用程序,我需要将Excel文件的数据导出到一个数组中,然后在这个数组上工作。为了获得excel,我使用Apache POI,我可以在控制台中显示excel文件的值。
但是,我需要将它放在一个数组中,目前我不知道如何使用迭代器,因为我要将excel数据放入迭代器中。
Workbook workbook = WorkbookFactory.create(new File(pathConfig1));
//File
Iterator<Sheet> sheetIterator = workbook.sheetIterator();
Sheet sheet = workbook.getSheetAt(nbSheet1);
//Get index sheet user
Iterator<Row> rowIterator = sheet.rowIterator();
int nbLine= sheet.getLastRowNum() +1;
//Number of Lines
int nbCol = sheet.getRow(0).getLastCellNum();
// Number of columns
String [][]data= new String[nbLine][nbCol];
//Array for the data
从这一点来看,我真的不知道如何导出我的数组中的数据...有什么想法吗?
我想使用2个循环,但我不知道如何递增我的迭代器…
发布于 2018-10-10 06:05:58
据我所知,您希望将每行中的每个单元格值存储在一个数组中,对吧?如果是这样,那么使用2个循环是正确的,在这种情况下迭代器是可选的。我已经重写了你的代码,希望它能有所帮助。
Workbook workbook = WorkbookFactory.create(new File(pathConfig1));
// Iterator<Sheet> sheetIterator = workbook.sheetIterator();
Sheet sheet = workbook.getSheetAt(0);
// Iterator<Row> rowIterator = sheet.rowIterator();
int nbLine = sheet.getLastRowNum() + 1;
int nbCol = sheet.getRow(0).getLastCellNum();
String[][] data = new String[nbLine][nbCol];
for (int i = 0; i < nbLine; i++) {
Row row = sheet.getRow(i);
for (int j = 0; j < nbCol; j++) {
Cell cell = row.getCell(j);
data[i][j] = cell.toString();
}
}
// Display
for (int i = 0; i < nbLine; i++) {
StringBuffer buff = new StringBuffer();
int j = 0;
for (; j < nbCol - 1; j++) {
buff.append(data[i][j]);
buff.append(",");
}
buff.append(data[i][j]);
System.out.println(buff.toString());
}
发布于 2018-10-10 05:43:07
我不熟悉您正在使用的特定库,但是使用迭代器的一种简单方法是在for each循环中
就像这样
for (Sheet sheet : workbook.sheetIterator()) {
for (Row row : sheet.rowIterator()) {
data[row][col] = //row.getCellValue()? Like I said, I don't know this library
}
}
https://stackoverflow.com/questions/52729674
复制相似问题