Читать данные из клетки - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть два файла xlsx, один с ожидаемым результатом, другой был сгенерирован приложением.Нет визуальных отличий между файлами.Из первого файла я могу получить все данные.Но когда я пытаюсь прочитать данные из второго файла (сгенерированного файла), все данные в формате валюты возвращаются с пустой строкой.

enter image description here

Но когда я копирую все данные во вновь созданный файл, я могу их прочитать.Что не так с созданным файлом и как его исправить?

 public String get_CellData(int rownum, int colnum) throws Exception {
            try {
                cell = sheet.getRow(rownum).getCell(colnum);
                String CellData = null;
                switch (cell.getCellType()) {
                    case Cell.CELL_TYPE_STRING:
                        System.out.println("The type of cell is STRING ");
                        CellData = cell.getStringCellValue();
                        break;
                    case Cell.CELL_TYPE_NUMERIC:
                        System.out.println("The type of cell is NUMERIC ");
                        if (DateUtil.isCellDateFormatted(cell)) {
                            //CellData = cell.getDateCellValue().toString();
                            SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
                            CellData = sdf.format(cell.getDateCellValue());
                        } else {
                            String typeCell = cell.getCellStyle().getDataFormatString();
                            System.out.println("typeCell: " + typeCell);
                            if (typeCell.contains("%")) {
                                // DecimalFormat df5 = new DecimalFormat( "#,###,###,##0.00000");
                                DecimalFormat df5 = new DecimalFormat("#######.##0.00000");
                                Double value = cell.getNumericCellValue() * 100;
                                CellData = df5.format(value) + "%";
                                System.out.println("Percent value found = " + CellData.toString());
                            } else {
                                DataFormatter formatter = new DataFormatter();//("#,##0.00");
                                int formatIndex = cell.getCellStyle().getDataFormat();
                                String cellFormattedData = formatter.formatRawCellContents(cell.getNumericCellValue(), formatIndex, "#0.00");
                                //String cellFormattedData =  formatter.formatRawCellContents(cell.getNumericCellValue(), formatIndex, "###.##");
                                CellData = cellFormattedData;
                            }
                        }
                        break;
                    case Cell.CELL_TYPE_BLANK:
                        System.out.println("The type of cell is BLANK ");
                        CellData = "";
                        break;
                    case Cell.CELL_TYPE_BOOLEAN:
                        System.out.println("The type of cell is BOOLEAN ");
                        CellData = Boolean.toString(cell.getBooleanCellValue());
                        break;
                    case Cell.CELL_TYPE_FORMULA:
                        System.out.println("The type of cell is FORMULA ");
                        System.out.println("Formula is " + cell.getCellFormula());
                        switch (cell.getCachedFormulaResultType()) {
                            case Cell.CELL_TYPE_NUMERIC:
                                System.out.println("Last evaluated as: " + cell.getNumericCellValue());
                                DataFormatter formatter = new DataFormatter();//("#,##0.00");
                                int formatIndex = cell.getCellStyle().getDataFormat();
                                String cellFormattedData = formatter.formatRawCellContents(cell.getNumericCellValue(), formatIndex, "#,##0.00");
                                CellData = cellFormattedData;
                                break;
                            case Cell.CELL_TYPE_STRING:
                                System.out.println("Last evaluated as \"" + cell.getRichStringCellValue() + "\"");
                                CellData = cell.getStringCellValue();
                                break;
                        }

                }
                return CellData;
            } catch (Exception e) {
                return "";
            }
        }
...