Pregunta Clase de generación / exportación de archivos PHP Microsoft Excel


He estado buscando una buena clase de generación de archivos de Excel y todavía tengo que encontrar uno. Mi problema número uno es que, aunque puedo abrir el archivo exportado en Excel (en ejecución en 2007), siempre aparece una advertencia que dice "el el archivo está en un formato diferente a la extensión del archivo ".

Noté que la exportación de Excel en phpMyAdmin incluso genera el mensaje de advertencia mencionado anteriormente.

¿Qué código utilizan otros usuarios para este requisito común?

Actualización rápida Si configuro la extensión de archivo de mi archivo Excel generado como xml, se abre en el navegador (aunque estoy enviando los encabezados correctos), pero si elijo guardar el archivo xml y luego lo abro desde Excel, funciona sin ningún advertencias! Desafortunadamente, eso es más complicado para los usuarios que simplemente hacer clic en "Continuar de todos modos" con la advertencia que estoy recibiendo. ¿Más ideas?


5
2018-05-15 17:56


origen


Respuestas:


http://www.phpexcel.net


8
2018-05-16 20:11



Utilizar Spreadsheet_Excel_Writer de la pera

o

Escribe el archivo a Formato CSV.
Pero use la comprensión de Microsoft Excel sobre csv: un punto y coma (;) como separador


2
2018-05-15 18:03



También deshabilita el cuadro de diálogo, usando regedit

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security]
“ExtensionHardening”=dword:00000000
  • Inicio -> Ejecutar -> regedit
  • Vaya a "HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT \ OFFICE \ 12.0 \ EXCEL \ SECURITY"
  • Nuevo DWORD
  • Escriba "ExtensionHardening" como el nombre y 0 como el valor

2
2018-05-15 20:00



Descubrí que al agregar lo siguiente, bajo la declaración xml en mi archivo Excel generado, me aseguro de que Excel abre el archivo con una extensión de archivo xml (en lugar del navegador web):

 <?mso-application progid=\"Excel.Sheet\"?>

También estoy configurando los siguientes encabezados en php:

// deliver header (as recommended in php manual)
header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Disposition: attachment; filename="' . $filename . '.xml"');

2
2018-05-16 12:10



El archivo está en un formato diferente que   la extensión del archivo

¿Has intentado guardar el archivo con otra extensión de archivo? Como "foo.xlsx" en lugar de "foo.xls".


0
2018-05-15 18:14