O DisplayTag está exportando CSV para um arquivo .xls
-
23-09-2019 - |
Pergunta
Eu exporto um documento do Excel com o DisplayTag. Economiza como um arquivo .xls na minha área de trabalho. Quando abro -o com o Excel, este erro é exibido:
"O arquivo que você está tentando abrir, 'filename.xls', está em um formato diferente do especificado pela extensão do arquivo. Verifique se o arquivo não está corrompido e é de uma fonte confiável antes de abrir o arquivo."
Se eu clicar em "Sim", ele exibe muito bem no Excel. Se eu abrir isso com o TextPad, vejo que é um arquivo binário, mas parece ser apenas "." cordas delimitadas.
Alguma idéia do que eu poderia ter feito de errado ou o que depurar isso?
editar::
Se eu alterar a extensão para .txt, não é um arquivo binário; É simplesmente uma lista de cordas delimitadas.
Solução 2
A classe de exportação padrão para o Excel foi definida como a classe CSV, mas fornecendo a extensão .xls. Mudar o DisplayTag.properties foi a chave aqui, algo como:
export.types=csv excel xml rtf pdf
export.excel=true
export.xml=true
export.csv=true
export.rtf=false
export.pdf=false
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView
export.rtf.class=org.displaytag.export.DefaultRtfExportView
export.excel.filename=data.xls
export.pdf.filename=data.pdf
export.xml.filename=data.xml
export.csv.filename=data.csv
export.rtf.filename=data.rtf
Outras dicas
Você está no Excel 2007? Parece ser um conhecido questão:
Em alguns casos, após a atualização para o Excel 2007, você pode obter o seguinte erro: O arquivo que você está tentando abrir .xlsx está em um formato diferente do especificado pela extensão do arquivo. Verifique se o arquivo não está corrompido e é da fonte confiável antes de abrir o arquivo. Você quer abrir o arquivo agora?
Isso ocorre particularmente quando você está tentando abrir um arquivo XLS (Excel 2000-2003) com o Excel 2007. Na maioria dos casos, o problema pode ser resolvido definindo tipos de MIME e associando-os a extensões.
...
No entanto, se você não quiser procurar uma solução, mas apenas deseja resolver o problema, insira essa chave em seu registro para suprimir a notificação:
Hkey_current_user software Microsoft Office 12.0 Excel Security] “ExtensionHardening” = dWord: 00000000
Você pode realizar o acima, fazendo o seguinte:
- Abra seu registro (Start -> Run -> Regedit.exe)
- Navegar paraHkey_current_user software Microsoft Office 12.0 Excel Security
- Clique com o botão direito na janela direita e escolha Novo -> DWORD
- Modelo "Extensãohedinging”Como o nome (sem as cotações)
- Verifique se os dados têm o valor “0″
Você precisa adicionar as linhas abaixo no seu arquivo de propriedades:
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView
Mas isso produz apenas o registro da página atual e não a lista completa.