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?
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.
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.
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: