PHPExcel: Error al abrir un archivo creado con la función php://output

Estoy utilizando la libreria PHPExcel para crear archivos Excel 2007 desde PHP al vuelo., pero al momento de descargar el archivo utilizando algo como lo siguiente:

header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’);
header(‘Content-Disposition: attachment;filename=”pruebas.xlsx”‘);
header(‘Cache-Control: max-age=0’);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007’);
$objWriter->save(‘php://output’);

Y al abrir el excel me aparece un error como el siguiente:

Excel no puede abrir el archivo ‘pruebas.xlsx’ porque el formato o la extensión de éste no son válidos. Compruebe que el archivo no se ha dañado y que la extensión del mismo coincide con el formato del archivo.

Pero el detalle esta en que si se genera para guardar el excel en disco duro, si se abre correctamente, entonceees!., el problema esta en la generación al vuelo que este enviando algo extraño.

La solución esta en el encoding de los archivos PHP, estos deben de estar en modo UTF-8 sin BOM (ANSI as UTF-8), para ver que tipo de codificación tenemos, instalamos el notepad++, despues en la parte inferior derecha aparecerá el encoding y pues verificar que diga ANSI as UTF-8, para convertir solo ingresar al menú Codificación.

Y listo!.., ya podemos crear nuestro archivo Excel., también no olviden verificar que no se mande nada de nada de texto (ni un espacio en blanco., nadaaa!)

Archivo CSV marca error de formato SYLK

He estado trabajando con la librería php-csv-utils para crear archivos CSV desde PHP de forma más facil., y despues de crear el script y querer abrir el archivo.CSV con Microsoft Office Excel me aparece el siguiente mensaje de error:

Se ha detectado que “archivo.CSV” es un archivo SYLK, pero no se puede cargar. Puede que el archivo contenga errores o que no tenga formato de archivo SYLK. Haga clic en Aceptar para intentar abrirlo con otro formato

Y pues no se abre el archivo.., investigando sobre la solución a este error me encuentro que cuanto en la linea 1, aparece el texto ID (asi con mayusculas), es cuando aparece el error., la solución es que excel no detecte que los 2 primeros caracteres digan ID, ya sea pasarlo todo a minusculas ( id ), o la primera mayuscula y la demas minuscula ( Id )

Aquí la explicación oficial de la ayuda de Microsoft para el error SYLK y si quieren saber más sobre el formato Symbolic Link (SYLK) pues en wikipedia.