Apache POI - Abrir uma planilha sem gravá-la em disco

1 resposta
M

Boa tarde a todos.

Criamos uma pequena aplicação que realiza a exportação de uma planilha utilizando a API da Apache (POI). Devido a uma restrição em gravar dados nas estações de trabalho, não podemos estabelecer um local padrão para gravar o arquivo gerado.

Para realizar a gravação da planilha estamos utilizando o seguinte método:

/* arquivo = "c:\planilha.xls" - conforme exemplo */
protected void gravaPlanilha(String arquivo) throws FileNotFoundException, IOException {
  
   FileOutputStream fileOut = new FileOutputStream(arquivo);
   wb.write(fileOut);
   fileOut.close();

}

Para exibir a planilha estamos utilizando o seguinte método:

public void update() {

   try {
      
      progresso.setValue(0);
      progresso.setIndeterminate(false);

      Desktop.getDesktop().open(new File("c:/planilha.xls"));
           
      JOptionPane.showMessageDialog(null, "Processo finalizado!", "Atenção", JOptionPane.INFORMATION_MESSAGE);

   } catch (Exception e) {
      JOptionPane.showMessageDialog(null, "Erro ao tentar abrir a planilha!", "Atenção", JOptionPane.ERROR_MESSAGE);
   }

}

Gostaríamos de saber se há um meio de exibir os dados gerados pela planilha sem que tenhamos que gravá-la em disco?

Obrigado!

1 Resposta

PadrE

Opa... preciso da mesma coisa... no meu caso.. tenho um arquivo BLOB e gostaria de exibi-lo sem a necessidade de salvar em disco,...

Antes do Ótimo.. estou tentando o Bom.. ^^
Mas ao tentar abrir... estou tendo erro de Wun32 Invalido...

Segue o trecho do codigo que tneta abrir o arquivo:

File caminhoTemp = System.getProperty("user.home") + "\\meuArquivo.doc";
byte[] buffer      = new byte[1024];
OutputStream arquivoSaida  = new FileOutputStream( caminhoTemp );
InputStream arquivoBinario =  myBlobFile.getBinaryStream();
while ((bytesRead = arquivoBinario.read( buffer )) != -1) 
{
	arquivoSaida.write(buffer, 0, bytesRead);
}
arquivoSaida.close();
arquivoBinario.close();
				
System.load(caminhoTemp.getAbsolutePath());
Na linha do System ocorre:
java.lang.UnsatisfiedLinkError: C:\Documents and Settings\ADMIN\meuArquivo.doc: %1 não é um aplicativo Win32 válido

Se eu tento executar o arquivo com 2 clicks... funciona!

Alguma idéia de como resolver ao menos com ele em disco ?

Criado 13 de abril de 2009
Ultima resposta 26 de out. de 2009
Respostas 1
Participantes 2