Ajuda com p:fileDownload do primefaces

0 respostas
D

boa tarde , estou fazendo a parte de exportaçao de relatorio do meu sistema e estou testando a exportaçao xls.

tenhu o seguinte codigo

public StreamedContent gerarExcel(List<RelatorioPergunta> listRelatorioVisitaQuestao) throws Exception {
    	
	   StreamedContent arquivoXLS = null;
    	HSSFWorkbook wb = new HSSFWorkbook();   
        HSSFSheet sheet = wb.createSheet("Lista Usuarios");   
            
            for (int cont = 0; cont < listRelatorioVisitaQuestao.size(); cont++) {   
      
               // usuarioDTO = (UsuarioDTO) listaUsuarios.get(cont); 
                RelatorioPergunta relatorioPergunta = listRelatorioVisitaQuestao.get(cont);
      
                HSSFRow row = sheet.createRow(cont);   
      
                HSSFCell celula0 = row.createCell((short) (0));   
                sheet.autoSizeColumn((short) 0);   
                   
                   
                celula0.setCellValue(relatorioPergunta.getVisitaQuestao().getId_visita_questao());   
                HSSFCell celula1 = row.createCell((short) (1));   
                sheet.autoSizeColumn((short) 1);   
                  
                   
                celula1.setCellValue(relatorioPergunta.getVisitaQuestao().getQuestao().getDescricao());   
                HSSFCell celula2 = row.createCell((short) (2));   
                sheet.autoSizeColumn((short) 2);                     
            }   
            FileOutputStream stream = new FileOutputStream("planilhausu.xls");   
            wb.write(stream);   
            
            File arquivo = new File("planilhausu.xls");
            arquivoXLS = new DefaultStreamedContent(new FileInputStream(arquivo), "planilhausu/xls", "relatorio2.xls");
            return arquivoXLS;
        
    }

na linha onde esta assim:

FileOutputStream stream = new FileOutputStream("planilhausu.xls");   
            wb.write(stream);

se eu colocar assim:

FileOutputStream stream = new FileOutputStream("D:/planilhausu.xls");   
            wb.write(stream);

o relatorio é salvo normalmente no disco D: do meu pc

so que se eu colocar a parte do

File arquivo = new File("planilhausu.xls");
 arquivoXLS = new DefaultStreamedContent(new FileInputStream(arquivo), "planilhausu/xls", "relatorio2.xls");
 return arquivoXLS;

o sistema da erro 500 na tela, eu nao tenhu ideia do que pode ser porque segui esse modelo no pdf e deu certo

alguem saberia dizer se com xls é diferente?

Criado 22 de maio de 2012
Respostas 0
Participantes 1