【问题标题】:how to know apache POI reading excel all data using gwt java如何知道apache POI使用gwt java读取excel所有数据
【发布时间】:2024-01-13 03:14:01
【问题描述】:

我正在使用 java 在 gwt 中使用 Apache POI 读取 excel 文件。我有一个包含 15000 条记录和四列 Count、Name、Mob No 和 EmailID 的 excel 文件。我正在 blobstore GAE 中上传 excel 文件,然后我正在读取该 excel 文件。我只是用记录器检查所有数据是否正在读取。当我部署和测试时,只有最后 266 行正在读取并显示在记录器中。为什么?如何从excel中读取所有数据。我的代码是:

HSSFWorkbook workbook = new HSSFWorkbook(newBlobstoreInputStream(blobkey));
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();

        // Traversing over each row of XLSX file
        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
        // For each row, iterate through each columns 
            Iterator<Cell> cellIterator = row.cellIterator(); 
            while (cellIterator.hasNext()) { 
                Cell cell = cellIterator.next();
                switch (cell.getCellType()) {
                case Cell.CELL_TYPE_STRING:
                   logger.log(Level.SEVERE,cell.getStringCellValue() + "\t");
                    break; 
                case Cell.CELL_TYPE_NUMERIC:                    
                   logger.log(Level.SEVERE,cell.getNumericCellValue() + "\t");
                   break; 
                 case Cell.CELL_TYPE_BOOLEAN: 
                   logger.log(Level.SEVERE,cell.getBooleanCellValue() +"\t");
                    break;
                default : 
                }
            } 
            System.out.println("");
        }

如何从头到尾读取所有数据? 任何帮助提前谢谢

还有一个是当我更改 XSSFWorkbook 和 XSSFSheet 而不是 HSSFWorkbook 和 HSSFSheet 以读取 Xlsx excel 然后它抛出异常:org.apache.poi.poifs.filesystem.OfficeXmlFileException:提供的数据似乎在 Office 2007+ XML。您正在调用处理 OLE2 Office 文档的 POI 部分。我该如何解决这个问题

任何帮助 提前致谢。

【问题讨论】:

    标签: java excel gwt apache-poi


    【解决方案1】:

    对于您遇到的例外情况,.xls 文件由 HSSFWorkbook 和 HSSFSheet 读取,而 .xlsx 由 XSSFWorkbook 和 XSSFSheet 读取。 如果您打算同时处理 .xls 和 .xlsx 格式,则可以使用 Factory 类来获取相应的工作簿。

    【讨论】: