HELP! Abrir Planilha Excel no Browser - Struts

Olá pessoal,

Eu estou desenvolvendo minha aplicação Web utilizando o Struts.

E gostaria de saber se alguém poderia me passar um exemplo de código em Java que me permitisse abrir uma planilha excel no meu Browser.

Eu tentei desenvolver um código, mas sempre é gerado um erro de

java.lang.NoClassDefFoundError

Por que esse erro é gerado ?

Obrigado a todos !!

Você poderia fazer um JSP, que leia os bytes do arquivo xls e vá enviando para o browser, aí você seta o content-type da pagina como application/vnd.ms-excel

Aí ele abre no browser…

Legal,

mas eu gostaria, se possível, que isso fosse implementado em um código Java dentro de uma Action (Struts).

Porque o erro java.lang.NoClassDefFoundError é gerado ?

O que posso fazer para contornar este problema ?

Esse erro acontece devido a falta de algum “jar” na seu container.
Falou :slight_smile:

Sim, mas concorda que a Action vai te redirecionar pra uma JSP!!!

Porque o arquivo .class da sua classe não está sendo encontrado!

Sim, mas concorda que a Action vai te redirecionar pra uma JSP!!!

Porque o arquivo .class da sua classe não está sendo encontrado!

Mas eu já adicionei o .jar para a minha aplicação (Libraries), mas mesmo assim o erro continua sendo gerado.

Eu também setei o .jar no classpath, mas mesmo ele continua dando erro.

Alguem poderia me dar alguma dica !!!

Mas deve estar faltando algum jar, que classe é essa que ele não acha?

Amigo, já ouviu falar do POI?

http://jakarta.apache.org/poi/

É excelente, gera planilhas Excel formatadas e muito rapidamente.

Paz!

Acredito que esse meu post não tenha muito haver com sua dúvida amigo, mas com certeza será muito útil pra alguém.

Perdi quase um dia pra fazer um simples link para uma planilha excel funcionar numa pagina jsp/Struts em um servidor Jboss. Vasculhei todo esse planeta terra, vi as mais interessantes e excelentes dicas, mas o link continuava abrindo o .xls no browser em formato binário.

Dicas como :

response.setContentType("application/vnd.ms-excel");

ou

[code]File filepath=new File(file.xls);

resp.setContentType("application/vnd.ms-excel");
resp.setHeader("Content-Disposition","inline; filename=" + filepath);

<a href=’<%=filepath%>’ target="_blank">
<image src="/UploadAppWeb/resources/images/download.gif" order=“0” /></a> [/code]

Mas o que eu queria era que pagina listasse diversos tipos de arquivos e permitisse download. Entao essas dicas acima nao atendem, pois ja abre a pagina executando o Excel.

O que se precisa e configurar o container web para que abre o Excel ou o Word quando encontrar um link com a devida extens'ao. Essa configuracaoe feita no conf\web.xml do Tomcat, por exemplo.

&lt;mime-mapping&gt; &lt;extension&gt;xls&lt;/extension&gt; &lt;mime-type&gt;application/vnd.ms-excel&lt;/mime-type&gt; &lt;/mime-mapping&gt;

No meu caso esse mapeamento acima n’ao funcionou. A solucao foi esse abaixo:
&lt;/mime-mapping&gt; &lt;mime-mapping&gt; &lt;extension&gt;xls&lt;/extension&gt; &lt;mime-type&gt;application/msexcel&lt;/mime-type&gt; &lt;/mime-mapping&gt;

Note que tem um pequena diferenca, o que determina tudo.

Bom e isso, qualquer coisa espalhem essas dicas, elas podem ajudar alquem deseperado.

Link relacionado
http://www.theserverside.com/discussions/thread.tss?thread_id=25864
http://www.utoronto.ca/ian/books/html4ed/appb/mimetype.html
http://www.sosdesigners.com/colunas-101.html

Abacos!!!