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.

Foi útil?

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:

  1. Abra seu registro (Start -> Run -> Regedit.exe)
  2. Navegar paraHkey_current_user software Microsoft Office 12.0 Excel Security
  3. Clique com o botão direito na janela direita e escolha Novo -> DWORD
  4. Modelo "Extensãohedinging”Como o nome (sem as cotações)
  5. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top