Pregunta

puedo exportar un documento de Excel con DisplayTag. Se guarda como un archivo .xls a mi escritorio. Cuando lo abro con Excel, esto muestra el error:

"El archivo que está intentando abrir, 'filename.xls', está en un formato diferente al especificado por la extensión de archivo. Compruebe que el archivo no está dañado y es de una fuente confiable antes de abrir el archivo."

Si hago clic en "Sí", se muestra muy bien en Excel. Si abro esto con Textpad, veo que es un archivo binario, pero parece ser sólo "" cadenas delimitadas.

Alguna idea de lo que me pudieran hacer mal hecho, o cómo junto a depurar este?

editar :

Si cambio la extensión a .txt, que no es un archivo binario; es simplemente una lista de cadenas delimitadas.

¿Fue útil?

Solución 2

La clase de exportación predeterminado para Excel se establece en la clase CSV, pero dándole la extensión .xls. Cambiando displaytag.properties fue la clave aquí, 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

Otros consejos

¿Está usted en Excel 2007? Parece ser un problema conocido :

  

En algunos casos después de actualizar a Excel   2007, puede recibir el siguiente error:   El archivo que está intentando abrir .xlsx   está en un formato diferente al de   especificado por la extensión de archivo.   verificar que el archivo no está dañado y   es de fuente de confianza antes de la apertura   el archivo. ¿Quieres abrir el archivo   ahora?

Este error se produce sobre todo cuando se está intentando abrir un archivo XLS (Excel 2000-2003) con Excel 2007. En la mayoría de los casos, el problema puede ser resuelto mediante la definición de los tipos MIME y asociándolos con extensiones.

...

Sin embargo, si no se quiere buscar una solución, pero sólo quiere resolver el problema, insertar esta clave en el registro para suprimir la notificación:

[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 12.0 \ Excel \ Security] “ExtensionHardening” = dword: 00000000

Se puede lograr lo anterior mediante el procedimiento siguiente:

  1. Abra su Registro (Inicio -> Ejecutar -> regedit.exe)
  2. Vaya a HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT \ Office \ 12.0 \ Excel \ SECURITY
  3. Haz clic derecho en la ventana derecha y     elija Nueva -> DWORD
  4. Tipo “ ExtensionHardening ” como el Nombre (sin las comillas)
  5. Verificar que los datos tiene el valor “ 0 "

Es necesario añadir el siguiente líneas en el archivo de propiedades:

export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView

Pero esta salidas del registro de página actual y no la lista completa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top