Yii Framework Forum: Caracteres al pasar al Excel y ceros por la izquierda - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Caracteres al pasar al Excel y ceros por la izquierda Acentos, caracter ñ y ceros Rate Topic: -----

#1 User is offline   bocatadepanceta 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 28
  • Joined: 07-August 14

Posted 20 January 2015 - 04:21 AM

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">

0

#2 User is offline   bocatadepanceta 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 28
  • Joined: 07-August 14

Posted 20 January 2015 - 04:47 AM

View Postbocatadepanceta, on 20 January 2015 - 04:21 AM, said:

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 falta la segunda parte del problema con las referencias...

un saludo
0

#3 User is offline   a18327 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 106
  • Joined: 14-August 13
  • Location:México

Posted 20 January 2015 - 12:15 PM

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'.
0

#4 User is offline   bocatadepanceta 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 28
  • Joined: 07-August 14

Posted 21 January 2015 - 04:50 AM

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. :)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users