Gerar relatorio exel sem salvar no pc

3 respostas
A

boa tarde,

estou querendo abrir o relatorio excel sem precisar salvar ele no C: ou em qualquer outro lugar:

public HashMap relExcel() {

       String sql = req.getParameter("pSql");
try{
       DAOExcelSql dao = new DAOExcelSql();

       List<String> NomeClunas = dao.consultaNmeColunas(sql);
       List<Object> DadosColunas = dao.consultaDadosColunas(sql);
       int count = 0;

       StringBuilder sb = new StringBuilder();



        for (Iterator<String> it = NomeClunas.iterator(); it.hasNext();) {
        sb.append(it.next()+"\t");
      }
       sb.append("\n");
       for (Iterator<Object> it = DadosColunas.iterator(); it.hasNext();) {

           if(count < NomeClunas.size()){
           sb.append(it.next());
           sb.append("\t");
           count ++;
           }else if(count == NomeClunas.size()){
               sb.append("\t");
               sb.append("\n");
               count = 0;
           }

       }
       File rel = new File("c:\\relTeste.xls");// aqui eu estou salvando o relatorio no C, mas eu nao queria salvar ele em lugar nenhum so abri-lo
       rel.createNewFile();
       FileWriter relExcel = new FileWriter(rel);
       relExcel.write(new String(sb));

    String sOs = System.getProperty("os.name").toUpperCase();
    if(sOs.equals("WINDOWS NT") || sOs.equals("WINDOWS 2000") || sOs.equals("WINDOWS XP")){
         Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE " + rel.getAbsolutePath());
    } else{
    Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE " + rel.getAbsolutePath());
    }

       relExcel.flush();
       relExcel.close();


        }catch (Exception ex){
            ex.printStackTrace();
        }
    return dados;
}

3 Respostas

pmlm

Para abrires no excel, o ficheiro tem de existir.
Podes cria-lo na directoria temp do sistema.

A

entendo,

tem como da opção de download nesse metodo?
o sistema é web!

A

como se eu estivesse usando ireport

Criado 28 de fevereiro de 2011
Ultima resposta 1 de mar. de 2011
Respostas 3
Participantes 2