在日期范围

时间:2016-04-25 08:28:22

标签: java excel apache-poi

我用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();

0 个答案:

没有答案