我用Java编写程序,其中有一个包含3个用户的Excel工作表:
user1
user2
uesr3
他们的任务是每天处理一些产品,数据存储在Excel中,如下所示。
user | product | date
user1 | 123 | 2/22/2016
user2 | 143 | 2/22/2016
user2 | 145 | 2/22/2016
user3 | 182 | 2/24/2016
user2 | 151 | 2/25/2016
在我的Java应用程序中,当我选择数据范围时,我需要打印在控制台中处理产品数量的用户数量。
如果我选择日期范围为2/22/2016
- ' 2016年2月22日'它应该告诉我
user1 - 1
user2 - 2
这只是一个创建的样本,但实际上大约有1000行,而计数器会减慢这个过程。
我确信这可以在JDBC中轻松完成,但我不想使用JDBC应用程序。这可以使用POI完成吗?如果是的话,请给我一个参考。
我使用以下代码从Excel中读取。
String excelFilePath = "Books.xlsx";
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
while (iterator.hasNext()) {
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue());
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.print(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue());
break;
}
System.out.print(" - ");
}
System.out.println();
}
workbook.close();
inputStream.close();