Caracteres al pasar al Excel y ceros por la izquierda

Hola comunidad,

Me encuentro con el problema que al generar mediante la opción request unfichero excel que vuelca la información desde un Gridview tanto los acentos como el carácter Ñ no son convertidos a su forma correcta, por el momento no se necesitan informes más elaborados.

he realizado las modificaciones y comprobaciones en:

Las tablas en Mysql están generadas bajo UTF-8_general_ci

He modificado el php.ini añadiendo la siguiente línea -> default_charset = "utf-8"

en el servidor apache he añadido la siguiente línea dentro del fichero httpd.conf -> AddDefaultCharset UTF-8

en el fichero que genera el volcado de la información tengo puesto esta línea.




<?php header("Content-type: text/html; charset=utf8"); ?>



Bien con todo esto tras parar y arrancar el servidor (estoy utilizando WAMP) el fichero generado en excel no toma de forma correcta los caracteres.

Por otra parte también tengo referencias numéricas que llevan ceros (0002134) por la izquierda y que pasadas a Excel estos 000 al ser valores definidos como enteros los elimina dejando el valor 2134, hay alguna instrucción o convertir estos datos a texto para que respete estos ceros por la izquierda en esas cifras.

Gracias por vuestro tiempo.

Me contesto La primera parte la he solucionado añadiento la siguiente línea dentro del fichero que genera el documento en la parte del HTML




<meta http-equiv="Content-Type" content="text/html; charset=utf-8">



Me contesto La primera parte la he solucionado añadiento la siguiente línea dentro del fichero que genera el documento en la parte del HTML




<meta http-equiv="Content-Type" content="text/html; charset=utf-8">



Me falta la segunda parte del problema con las referencias…

un saludo

No se como generas el archivo de Excel, pero debe ser porque Excel automaticamente convierte a numeros los textos que representan numeros por ejemplo 0001 lo convierte a 1, entonces lo que puedes hacer es encerrar entre comillas esos numeros por ejemplo en lugar de 0001 pon ‘0001’.

Hola,

Muchas gracias a18327 por tu respuesta y ayuda de nuevo, a la hora de generar el fichero excel estoy usando la función request ya que son reports muy simples.




yii::app()->request->sendFile("ExcelAplicaciones.xls",$content);



he realizado varias pruebas utilizando tu propuesta y es correcta pero no quedaba de todo bien, puesto que al abrir el documento (en mi caso) los números dentro de la hoja excel aparecen con la comilla simple '01253, teniendo que editar la celda para que excel tome el número como texto y lo deje con 01253.He intentado modificar el tipo de celda pero no tomaba el dato de forma correcta.

He seguido buscando y en otro foro he encontrado esto que a mi me funciona y sirve. Dentro del fichero que genera el excel es colocar un pequeño ccs con las siguientes características.




 <style type="text/css">

        .formato

        {mso-style-parent:style0;

         mso-number-format:"\@";}

 </style>



y luego a la hora de escribir el campo en el fichero.




<td class=formato align="center"> <?php echo ($row->APLI_0001); ?> </td>



Aquí dejo el enlace donde lo he econtrado.

enlace

Espero que sirva a otros. :)