Ler e gravar aquivo de saida usando o APACHE POI [HELPPP]

2 respostas
java
H

Pessoal , bom dia.

Sou iniciante em java e preciso de uma ajuda…ja procurei/testei varios codigos para ler minha planilha, porem nenhum da certo…Não conheço muito bem a POI…A principio só quero ler uma planilha já existente e gerar um arquivo novo de saida(futuramente manipularei os dados dessa planilha).

2 Respostas

R

Eu utilizo esse código para ler uma planilha no meu projeto, junto com o componente do primefaces, mas a parte do apache POI seria essa ai.

public void handleFileUpload(FileUploadEvent event) throws IOException {
        try {
            /* pega o arquivo Excel */
            Workbook workbook = null;
            
            if (event.getFile().getFileName().contains("xlsx")) {
                try {
                    workbook = new XSSFWorkbook(event.getFile().getInputstream());
                } catch (IOException ex) {
                    throw new RuntimeException(ex);
                }
            } else if (event.getFile().getFileName().contains("xls")) {
                try {
                    workbook = new HSSFWorkbook(event.getFile().getInputstream());
                } catch (IOException ex) {
                    throw new RuntimeException(ex);
                }
            }
            /* pega a primeira planilha dentro do arquivo XLS */
            Sheet sheet = workbook.getSheetAt(0); 
            
            //Pega a quantidade de linhas da planilha
            Iterator<Row> rowIterator = sheet.iterator();
            
            while (rowIterator.hasNext()) {
                Row row = rowIterator.next();
                Iterator<Cell> cellIterator = row.cellIterator();
                
                UcLigada uc = new UcLigada();
                String s = null;
                while (cellIterator.hasNext()) {
                    Cell cell = cellIterator.next();
                    switch (cell.getColumnIndex()) {
                        case 0:
                            uc.setData(cell.getDateCellValue());
                            break;
                        case 1:
                            uc.setUc(String.valueOf((long)cell.getNumericCellValue()));
                            break;
                     }
                }
                if(uc.getData() != null || uc.getUc() != null) {
                    getFacade().create(uc);
                } else {
                    JsfUtil.addErrorMessage("UC " + uc.getUc() + " não foi cadastrada.");
                }
            }
            
            workbook.close();
            
            JsfUtil.addSuccessMessage("Upload do arquivo " + event.getFile().getFileName() + " realizado com sucesso!");
            
         } catch (FileNotFoundException e) {
            JsfUtil.addErrorMessage("Arquivo não encontrado");
        }
            
    }
R

*Evite criar tópicos com HELP, AJUDA, SOCORRO, URGENTE, isso só vai fazer com que alguns dos membros nem se deem o trabalho de ler seu tópico.

Criado 15 de março de 2018
Ultima resposta 15 de mar. de 2018
Respostas 2
Participantes 2