Excel no Browser  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
Felipe
Thread.start()
[Avatar]

Membro desde: 04/11/2003 12:37:41
Mensagens: 47
Localização: Limeira/SP
Offline

Olá

Tenho um servlet q redireciona para um arquivo excel, q deve abrir pelo browser.

como faria isso?

eu usei:


o problema é que só funciona em máquinas com offie 2000
como faço para abir em máquinas com office 97?

Felipe Serpeloni
[Email] [MSN] [ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Não faz.

A responsabilidade abrir o arquivo no browser ou fora dele ou de fazer o download é do browser, não sua (no servidor).

O máximo que você pode fazer é isso, seta o tipo da resposta pro browser, ai se ele tiver um plugin pra tratar o tipo de arquivo ele vai usa-lo, caso contrário vai pedir pra salvar.

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
Felipe
Thread.start()
[Avatar]

Membro desde: 04/11/2003 12:37:41
Mensagens: 47
Localização: Limeira/SP
Offline

tudo bem

mas como eu faço isso?

quando é office 2000, ele mostra, mas quando é office 97, ele tenta abrir e dá erro

não deveria baixar o arquivo, já que não consegue abrir?

Felipe Serpeloni
[Email] [MSN] [ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Hummmm ... vamos revisar.

Mesmo código gerando o arquivo excel, mesmo arquivo excel ... mesmo tudo e só abre no 2000?

Será que o arquivo não tem formato de 2000 e o Excel 97 não consegue abrir?

Diga a msg de erro, quando e como acontece ... ai dá pra chutar melhor.

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
Felipe
Thread.start()
[Avatar]

Membro desde: 04/11/2003 12:37:41
Mensagens: 47
Localização: Limeira/SP
Offline

Eu to gerando o arquivo usando a api jxl.
se eu tento abrir o arquivo gerado pelo excel 97, ele abre normal, o problema é quando vai abrir pelo browser.

dá erro do programa, do excel
"o programa gerou erros e será fechado. blá, blá"

Felipe Serpeloni
[Email] [MSN] [ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

assim fica complicado chutar.

Você gera e depois redireciona o browser pro arquivo .xls gerado? Se sim entonces seu excel de teste tá zicado.

Se não ... então você gera o arquivo e cospe o conteúdo dele no browser usando o servlet ... revise seu código pq ele não deve estar mandando o EOF ou alguma outra coisa mas que o 2000 consegue se virar e o 97 não.

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
Felipe
Thread.start()
[Avatar]

Membro desde: 04/11/2003 12:37:41
Mensagens: 47
Localização: Limeira/SP
Offline

A minha classe Relatorio gera o arquivo do excel, depois eu abro desse jeito:



o erro pode estar ai?

Felipe Serpeloni
[Email] [MSN] [ICQ]
massardi
JavaChild
[Avatar]

Membro desde: 16/10/2002 11:59:49
Mensagens: 125
Localização: São Paulo
Offline

Ai é que tá no servidor onde vc gera o aquivo excell, deve estar instalado o office 2000, um arquivo do office 2000 não abre no office 97 o contrario abre, mas o inverso não...

"Justo é o sutiã, que oprime os grandes, levanta os caídos, protege a todos e ainda disfarça os pequenos".
[WWW] [MSN] [ICQ]
Felipe
Thread.start()
[Avatar]

Membro desde: 04/11/2003 12:37:41
Mensagens: 47
Localização: Limeira/SP
Offline

No servidor está instalado o office 97

Felipe Serpeloni
[Email] [MSN] [ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Hummm ... a API não deve usar o excel instalado, nem precisaria do excel pra gerar o arquivo.

Tem alguma coisa no buffer antes do dispatch?
Tente dar um reset no response:

Se não funcionar .... bem ... não conheço as entranhas da API mas o foward deveria funcionar, usando o reset tente trocar por include.

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
Felipe
Thread.start()
[Avatar]

Membro desde: 04/11/2003 12:37:41
Mensagens: 47
Localização: Limeira/SP
Offline

smota

obrigado,
mas tentei dar reset no response
tb troquei forward por include, e naum dá certo

Felipe Serpeloni
[Email] [MSN] [ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

eitcha .. to quase indo ai hein :changes:

Nem um errinho no output ... exception ... logzinho ... qualquer coisinha?

Vamos recomeçar:

1. Ao visualizar seu servlet no micro com Excel97 o browser
a. Pergunta onde você quer salvar o arquivo
b. Abre o excel antes de baixar o arquivo
c. Baixa o arquivo sem perguntar nada e inicia o excel pra abrir o arquivo
d. M.N.D.A (m = merda, n = nenhuma, d = das, a = alternativas)

A próxima pergunta vem depois da resposta pra questão acima

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
tanque
JavaTeenager

Membro desde: 17/04/2003 08:29:38
Mensagens: 171
Localização: Florianópolis / SC
Offline

Duas coisas que eu sugeriria seria o seguinte. Ao inves de dar o forward , que voce nao ira saber direito o que acontece por baixo dos panos (vai que ele reseta o content-type), voce pode abrir o arquivo excel e pegar o outputstream, e voce mesmo escrever os dados na saida do servlet.

Outra coisa que voce pode testar eh tentar um setar, alem do content-type, setar o content-length. Talvez o Excel 97 tenha que saber de antemao o tamanho do arquivo. Ja vi outras aplicacoes que precisam do content length setado na resposta.
Felipe
Thread.start()
[Avatar]

Membro desde: 04/11/2003 12:37:41
Mensagens: 47
Localização: Limeira/SP
Offline

smota

ele baixa o arquivo, mas quando vai abrir q dá erro no excel.exe

ele nem pergunta se quer salvar

Felipe Serpeloni
[Email] [MSN] [ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Entonces faça um teste, mude o content-type para application/octet-stream
Isso deve forçar o download .... salve o arquivo no seu hd e tente abri-lo.

Se funcionar é porque o excel97 é xarope e não consegue abrir direto como ele está tentando (talvez a dica ai de cima se setar o content-length ajude neste caso).

Se não funcionar é porque Tanque tá certo ... você vai ter que abrir direto o arquivo ao invés de dar um foward (mas não pelo contet-type porque ele não muda já que o excel eh que tenta abrir o arquivo).

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team