private String[] rowToStringArray(Row row) { stringCache.clear(); for (Cell cell : CollectionUtils.asIterable(row.iterator())) { while (stringCache.size() < cell.getColumnIndex()) stringCache.add(""); // handle empty cells stringCache.add(formatter.formatCellValue(cell, evaluator)); } return stringCache.toArray(new String[stringCache.size()]); }
private List<ItemPlanilhaDownload> lerPlanilha( String path, Object workbook, Object sheet, Veiculo veiculo) throws IOException, ParseException { // formatar a data da planilha para o Obj SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); // Formatar a Hora da Planilha para o objeto SimpleDateFormat shf = new SimpleDateFormat("HH:mm:ss"); FileInputStream fisPlanilha = null; // Lista de veiculos da planilha List<ItemPlanilhaUpload> lista = new ArrayList<ItemPlanilhaUpload>(); ItemPlanilhaUpload item = new ItemPlanilhaUpload(); File file = new File(path); fisPlanilha = new FileInputStream(file); Iterator<Row> rowIterator = null; if (workbook instanceof XSSFWorkbook) { workbook = new XSSFWorkbook(fisPlanilha); sheet = ((XSSFWorkbook) workbook).getSheet("Passagens de Pedágio"); // retorna todas as linhas da planilha 0 (aba 1) rowIterator = ((XSSFSheet) sheet).iterator(); } else { workbook = new HSSFWorkbook(fisPlanilha); sheet = ((HSSFWorkbook) workbook).getSheet("Passagens de Pedágio"); // retorna todas as linhas da planilha 0 (aba 1) rowIterator = ((HSSFSheet) sheet).iterator(); } // varre todas as linhas da planilha 0 while (rowIterator.hasNext()) { // recebe cada linha da planilha Row row = rowIterator.next(); if (row.getRowNum() == 0) { continue; } // pegamos todas as celulas desta linha Iterator<Cell> cellIterator = row.iterator(); // varremos todas as celulas da linha atual while (cellIterator.hasNext()) { // criamos uma celula Cell cell = cellIterator.next(); if (cell.getColumnIndex() == 0) { item.setPlaca(cell.getStringCellValue()); } else if (cell.getColumnIndex() == 2) { item.setCategoria(Integer.valueOf(cell.getStringCellValue())); } else if (cell.getColumnIndex() == 3) { item.setData(sdf.parse(cell.getStringCellValue())); } else if (cell.getColumnIndex() == 4) { item.setHora(shf.parse(cell.getStringCellValue())); } else if (cell.getColumnIndex() == 5) { item.setConcessionaria(cell.getStringCellValue()); } else if (cell.getColumnIndex() == 6) { item.setPraca(cell.getStringCellValue()); } if (cell.getColumnIndex() == 7) { if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) { item.setValor(cell.getNumericCellValue()); } else { item.setValor(0.0); } lista.add(item); item = new ItemPlanilhaUpload(); } } } fisPlanilha.close(); return this.makeTheMagic(lista, veiculo); }
/** * @param planilha objeto do tipo Planilha que contém todos os dados necessários para facilitar a * operação na planilha */ public void processaPlanilha(Planilha planilha) throws NegocioException { List<Desembolso> dadosParaSalvar = new ArrayList(); int linha = 0; Double d; try { // cria um workbook = planilha toda com todas as abas XSSFWorkbook workbook = new XSSFWorkbook(planilha.getFile()); // recuperamos apenas a aba mandada XSSFSheet sheet = workbook.getSheetAt(planilha.getNumeroDaPlanilha() - 1); // retorna todas as linhas da planilha selecioada Iterator<Row> rowIterator = sheet.iterator(); // varre todas as linhas da planilha selecionada while (rowIterator.hasNext() && linha < planilha.getUltimaLinha()) { linha++; // recebe cada linha da planilha Row row = rowIterator.next(); // andar as linhas que serão ignoradas no início if (row.getRowNum() < planilha.getUltimaLinha()) { continue; } // pegamos todas as celulas desta linha Iterator<Cell> cellIterator = row.iterator(); // responsavel por definir qual coluna esta sendo trabalhada no intante int coluna = 1; Cell cell; Desembolso desembolso = new Desembolso(); // varremos todas as celulas da linha atual while (cellIterator.hasNext()) { // criamos uma celula cell = cellIterator.next(); // TODO O CÓDIGO DE PERSISTENCIA AQUI!! switch (coluna) { case ColunasDesembolso.GRUPO: desembolso.setGrupo(cell.getStringCellValue()); break; case ColunasDesembolso.PREFIXO_SUPER_INTENDENCIA: cell.setCellType(Cell.CELL_TYPE_STRING); desembolso.setPrefixoSuperintendencia(cell.getStringCellValue()); break; case ColunasDesembolso.NOME_SUPER_INTENDENCIA: cell.setCellType(Cell.CELL_TYPE_STRING); desembolso.setNomeSuperintendencia(cell.getStringCellValue()); break; case ColunasDesembolso.PREFIXO_REGIONAL: cell.setCellType(Cell.CELL_TYPE_STRING); desembolso.setPrefixoRegional(cell.getStringCellValue()); break; case ColunasDesembolso.NOME_AGENCIA: cell.setCellType(Cell.CELL_TYPE_STRING); desembolso.setNomeAgencia(cell.getStringCellValue()); break; case ColunasDesembolso.ORCAMENTO_PROPOSTO_ACUMULADO: desembolso.setOrcamentoPropostoAcumulado( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.REALIZADO_ATUAL: desembolso.setRealizadoAtual(this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.PERCENTUAL_ATINGIMENTO_UM: desembolso.setPercentualAtingimentoUm( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.REALIZADO_D_MENOS_UM: desembolso.setRealizadoDmenosUm(this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.NECESSIDADE_DIA_MENOS_UM: cell.setCellType(Cell.CELL_TYPE_NUMERIC); desembolso.setNecessidadeDiaDmenosUm( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.META_CONTATOS_ACUMULADA: cell.setCellType(Cell.CELL_TYPE_NUMERIC); desembolso.setMetaContatosAcumulada( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.REALIZADO_CONTATOS_MES: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setRealizadoContatosMes( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.PERCENTUAL_ATINGIMENTO_CONTATOS: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setPercentualAtingimentoContatos( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.CONTATOS_D_MENOS_UM: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setContatosDmenosUm(this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.CONTATOS_D_MENOS_DOIS: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setContatosDmenosDois(this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.PREFIXO_REPETE: cell.setCellType(Cell.CELL_TYPE_STRING); desembolso.setPrefixoRepete(cell.getStringCellValue()); break; case ColunasDesembolso.AGENCIA_REPETE: cell.setCellType(Cell.CELL_TYPE_STRING); desembolso.setAgenciaRepete(cell.getStringCellValue()); break; case ColunasDesembolso.CODIDGO_CARTEIRA: cell.setCellType(Cell.CELL_TYPE_STRING); desembolso.setCodigoCarteira(cell.getStringCellValue()); break; case ColunasDesembolso.CARTEIRA: cell.setCellType(Cell.CELL_TYPE_STRING); desembolso.setCarteira(cell.getStringCellValue()); break; case ColunasDesembolso.ORCAMENTO_PROPORCIONAL_ACUMULADO_DOIS: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setOrcamentoProporcionalAcumuladoDois( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.REALIZADO_ATUAL_DOIS: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setRealizadoAtualDois(this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.PERCENTUAL_ATINGIMENTO_DOIS: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setPercentualAgintimentoDois( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.META_CONTATOS_ACUMULADA_DOIS: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setMetaContatosAcumuladaDois( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.REALIZADO_CONTATOS_MES_DOIS: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setRealizadoContatosMesDois( this.doubleToBigDecimal(cell.getNumericCellValue())); break; case ColunasDesembolso.PERCENTUAL_ATINGIMENTO_CONTATOS_DOIS: cell.setCellType(cell.CELL_TYPE_NUMERIC); desembolso.setPercentualAtingimentoContatosDois( this.doubleToBigDecimal(cell.getNumericCellValue())); break; } System.out.println("valor = " + cell.toString()); coluna++; } dadosParaSalvar.add(desembolso); } this.salvar(dadosParaSalvar); } catch (FileNotFoundException ex) { throw new NegocioException("Arquivo com Erro Tente novamente!!"); } catch (IOException ex) { throw new NegocioException("Arquivo com Erro Tente novamente!!"); } }