Pessoal no codigo abaixo deixei comentado as linhas em que o programa funciona normalmente, ou seja gera as celulas no arquivo excel.
Mas estou tentando deixar o codigo mais pratico sem ter que entrar celula a celula.
Gostaria de saber se tem como pegar os gets dentro do laço for.
Retornar todos os gets de uma só vez. objTipo.getCodigo(), objTipo.getTipo() e objTipo.getStatus();
intr=1;for(TipoobjTipo:lstTipos){
Rowrow=sheet.createRow(r++);////codigo//CellcellCodigo=row.createCell(0);//cellCodigo.setCellValue(objTipo.getCodigo());//////nome//CellcellTipo=row.createCell(1);//cellTipo.setCellValue(objTipo.getTipo());//////secao//CellcellStatus=row.createCell(2);//cellStatus.setCellValue(objTipo.getStatus());for(inti=0; i < qdeCampos; i++){Cellcell=row.createCell(i);cell.setCellValue(objTipo.getTipo());}
r++;}
publicclassEncadear{privateintnum=5;privateStringtxt="texto";privatebooleanteste=true;publicintgetNum(){returnnum;}publicStringgetTxt(){returntxt;}publicbooleanisTeste(){returnteste;}//pegando todas as SAÍDAS dos processamentos realizados por todos os getterspublicObject[]allGetters(){returnnewObject[]{getNum(),getTxt(),isTeste()};}//Considero este método mais adequado, pois talvez não seja interessante pegar tudo, apenas parte dos atributospublicObject[]allNecessary(){returnnewObject[]{num,teste};}publicstaticvoidmain(String[]args){Object[]objetos=newEncadear().allGetters();System.out.println(objetos[0]+" "+objetos[1]+" "+objetos[2]);System.out.println((int)objetos[0]*2);}}
D
diego12
Vc pode criar uma espécie de “Result” em que armazena as informações num objeto, como no exemplo de @addller
Usar um método para criar as células (Recomendo!!!)
Também não conheço essa ferramenta do excel, mas provavelmente seja mais prático assim mesmo, célula a célula
E
Edsouzza1
ObrigadoamigosfuncionoucomadicadoaddllereficouassimNaclassedomodeloficouassim:publicObject[]allGetters(){returnnewObject[]{getCodigo(),getTipo(),getStatus()};}privatevoidGerarParaExcel(){//ESTE METODO FOI GERADO UTILIZANDO A BIBLIOTECA POI ONDE O MESMO ACESSA A BASE DE //DADOS E GERA UM RELATORIO NO EXCELStringnomeCampo=null;`Textopré-formatado`//recuperando a qde de colunas da tabelaintqdeCampos=0;qdeCampos=umabiblio.retornaQdeColunasDaTabela("tbltipos");//recuperando os nomes das colunas da tabelaArrayList<String>lstNomesColunas=umabiblio.recuperarNomesColunas("tbltipos");//selecionar o local para salvar o arquivoJFileChooserchooser=newJFileChooser();FileNameExtensionFilterfiltro=newFileNameExtensionFilter("Arquivos de excel","xls");chooser.setFileFilter(filtro);chooser.setDialogTitle("Salvar arquivo");chooser.setMultiSelectionEnabled(false);//se escolheu um local validoif(chooser.showSaveDialog(null)==JFileChooser.APPROVE_OPTION){//passando o caminho completo do nome do arquivo a ser geradoStringnomeArquivo=chooser.getSelectedFile().toString().concat(".xls");try{List<Tipo>lstTipos=tipoDAO.gerarListaTiposSQL(sqlDefault);//criando o cabecalhoHSSFWorkbookworkbook=newHSSFWorkbook();HSSFSheetsheet=workbook.createSheet("Lista de Tipos");//nome da aba a ser cridadaRowcabecalho=sheet.createRow(0);for(inti=0;i<qdeCampos;i++){//passando os nomes das colunas para o cabeçalho atraves dos nomes retornados pelo arraynomeCampo=lstNomesColunas.get(i);cabecalho.createCell(i).setCellValue(nomeCampo);//formatando o cabeçalhoHSSFCellStyleestiloCabecalho=workbook.createCellStyle();HSSFFontfont=workbook.createFont();font.setFontName(HSSFFont.FONT_ARIAL);font.setFontHeightInPoints((short)10);estiloCabecalho.setFont(font);estiloCabecalho.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);cabecalho.getCell(i).setCellStyle(estiloCabecalho);}//para começar na segunda linha depois do cabecalhointr=1;//iterando a lista e criando as celulas o arquivo excelfor(TipoobjTipo:lstTipos){for(inti=0;i<qdeCampos;i++){//allGetters foi criado no modelo da classe Tipo para que sejam gerados todos os gets de todos os atributos como acimaObject[]objetos=objTipo.allGetters();Cellcell=row.createCell(i);cell.setCellValue((String)objetos[i].toString());}r++;for(inti=0;i<qdeCampos;i++){//tamanho das celulas automaticas sheet.autoSizeColumn(i);}}//salvar o arquivo excelFileOutputStreamout=newFileOutputStream(newFile(nomeArquivo));workbook.write(out);out.close();JOptionPane.showMessageDialog(null,"Arquivo Excel gerado com sucesso!");}catch(Exceptionex){System.out.println(ex.getMessage());}}}