Problema ao gerar xls [RESOLVIDO]

6 respostas
von.juliano

Oi pessoal, será que alguém já se deparou com algo assim:

Eu criei algumas planilhas em excel, da forma mais “fácil”, escrevi um html interno com os dados e setei o contexto como aplication/excel. Funciona perfeitamente.

Só que… :roll:
O xls gerado está no formato html, se abrir pelo notepad você pode ver os códigos. O sistema que vai ler esses xls só lê se ele for binário.

Então preciso saber se há uma forma de transformar o xls em html num xls binário. Sabem se é possível? Me indicam algum forma de fazer?

Obrigado! :wink:

6 Respostas

von.juliano

Tentei utilizar o apache POI, mas dá o seguinte erro:

java.io.IOException: Invalid header signature; read 7888090397404325948, expected -2226271756974174256 at org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockReader.java:103) at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:90) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:259) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:240)Suponho que seja porque o arquivo não é binário. Alguém sabe como posso resolver?

von.juliano

Será que existe algum componente, mesmo que seja pago, que faça esse tipo de conversão?

ramilani12

Coloque no header desta foram: application/vnd.ms-excel

von.juliano

Ramilani12, pior que eu já tentei assim! Também já foi application/vnd.excel, application/x-excel, application/x-msexcel…

Ele cria o arquivo do excel, mas o arquivo não é binário. :cry:

Também já tentei copiar o arquivo com Input/OutputStream, mas o arquivo criado é idêntico. Fazendo assim há alguma propriedade que eu posso alterar, tipo file.setBinary(true)? :lol:

Mais alguma sugestão? Obrigado!

von.juliano

Acabam de me informar que os arquivos enviados pelo cliente também serão no formato xls-html. Então o problema mudou exclusivamente para:

Como converto arquivos xls baseados em html em xls binários :?:

Obrigado. :wink:

von.juliano

Pessoal, consegui fazer o que preciso com VBScript :shock:

Dim objExcel Dim objWorkBook Set objExcel = CreateObject("EXCEL.APPLICATION") Set objWorkBook = objExcel.Workbooks.Open("C:\html.xls") objWorkBook.SaveAs "C:\binario.xls", 1 objWorkBook.Close True Set objWorkBook = Nothing Set objExcel = NothingO 1 na linha do método SaveAs corresponde ao xlNormal, que salva o arquivo como xls bionário mesmo.

Aprendi bastante de VBScript hoje :XD:… Mas se alguém souber como faz isso em java eu agradeço! Flw! :mrgreen:

Criado 4 de junho de 2008
Ultima resposta 6 de jun. de 2008
Respostas 6
Participantes 2