Boa tarde galera, seguinte eu preciso criar um relatório e quero faze-lo com ireport, ele será gerado em pdf e Excel, por isso a escolha do ireport, o problema é que tenho que gerar várias planilhas dentro deste relatório, há alguma forma de gerar N planilhas com o ireport??
Basicamente voce vai gerar uma lista de JasperPrint e no JRXlsExporter voce vai passar os parametros abaixo:
final JRXlsExporter ex = new JRXlsExporter();
ex.setParameter(JRXlsExporterParameter.JASPER_PRINT_LIST, Lista_de_JapserPrint);
ex.setParameter(JRXlsAbstractExporterParameter.SHEET_NAMES, Array_Nome_abas);
S
salina_foz
Muito obrigado pela ajuda!
L
LuizFerro
Bom dia salina_foz, preciso fazer algo semelhante porem estou com algumas duvidas e não encontro quase nada a respeito, estou criar um relatorio em excel usando ireport e preciso de duas abas nesta planilha, como fica o arquivo do ireport? este e o metodo que passa as informações para o ireport:
publicvoidexecutarRelatorioDemandasProcessos8(ActionEventaction)throwsException{FacesContextcontext=FacesContext.getCurrentInstance();HttpServletResponseresponse=(HttpServletResponse)context.getExternalContext().getResponse();try{ServletOutputStreamservletOutputStream=response.getOutputStream();Map<String,Object>parametros=newHashMap<String,Object>();Listdados=newArrayList();Listdados2=newArrayList();Listlista=null;Maprecord=null;Maprecord2=null;//Lista com os id's das demandasList<Long>listaIds=newArrayList<Long>();parametros.put("TITULO","BTCALL CENTER - RELATÓRIO DEMANDAS CONTEUDISTAS");Iterator<?>iterator=getRelatorioPesqDemandasProcessos8().iterator();while(iterator.hasNext()){CelulasDemandad=(CelulasDemanda)iterator.next();record=newHashMap();listaIds.add(d.getDemanda().getId());record.put("id",d.getDemanda().getId());///Mais itens... //adiciona o List dadosdados.add(record);}Iterator<?>iterator2=getCDatasDemandasPorDemanda(listaIds).iterator();while(iterator2.hasNext()){CdatasDemandasc=(CdatasDemandas)iterator2.next();record2=newHashMap();record2.put("demanda",c.getDemanda());///Mais itens...dados2.add(record2);}//Instancia o arquivo de swap, informando:// Diretorio,// Tamanho de cada bloco (4kb)// Numero mínimo de blocos que o swap será aumentado sempre que estiver cheio//JRSwapFile arquivoSwap = new JRSwapFile("/usr/share/apache-tomcat-7.0.53/webapps/genteemacao/tmp/", 4096, 100);// Instancia o virtualizador //JRAbstractLRUVirtualizer virtualizer = new JRSwapFileVirtualizer(100, arquivoSwap, true);//parametros.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);//cria uma fonte de dados para cole??es JRBeanCollectionDataSourcefonteDados=newJRBeanCollectionDataSource(dados);JRBeanCollectionDataSourcefonteDados2=newJRBeanCollectionDataSource(dados2);imprimirExcel(fonteDados,"RelatorioConteudistas_UltimateVersion",parametros);imprimirExcel(fonteDados2,"RelatorioCdatasDemandas",parametros);servletOutputStream.flush();servletOutputStream.close();}catch(IOExceptione){e.printStackTrace();thrownewException("Um erro ocorreu quando o relatório estava sendo executado.");}finally{context.responseComplete();}}
Uma de minhas duvidas eh: no metodo imprimir excel, eu passo um jrxml diferente, ou e um mesmo xml que eu configuro as duas abas?