Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: OssoH en 7 Marzo 2014, 18:05 pm



Título: PHPexcel celda multilinea
Publicado por: OssoH en 7 Marzo 2014, 18:05 pm
Estoy creando un excel desde php con la libreria phpexcel. El problema lo tengo cuando quiero poner mas de una linea (retorno de carro) dentro de una misma celda.


Si hago lo siguiente  funciona:

Código:

$campo = "Hello\nWord";
$objPHPExcel->getActiveSheet()->setCellValue($letra.$pos, "$campo");
  $objPHPExcel->getActiveSheet()->getStyle($letra.$pos)->getAlignment()->setWrapText(true);

En cambio si hago lo siguiente no funciona y en excel la celda me la pone por ejemplo de la siguiente forma :  prueba\nexcel\n desdephp

Código:
				$campo = htmlspecialchars(str_replace('<br>','\n',$result[$i]['description']));
$objPHPExcel->getActiveSheet()->setCellValue($letra.$pos, "$campo");
  $objPHPExcel->getActiveSheet()->getStyle($letra.$pos)->getAlignment()->setWrapText(true);

Lo he probado de mil formas y nada :(
alguien se le ocurre que puede ser?
Gracias.



Título: Re: PHPexcel celda multilinea
Publicado por: #!drvy en 7 Marzo 2014, 22:10 pm
El caracter \n es nueva linea y se parsea SOLO si va entre comillas dobles.

Código
  1. $campo = htmlspecialchars(str_replace('<br>',"\n",$result[$i]['description']));

Saludos


Título: Re: PHPexcel celda multilinea
Publicado por: OssoH en 10 Marzo 2014, 09:40 am
Siii, funciona!! gracias.

Ahora el "unico" problema que tengo es que cuando se abre en excel me pone 'intros' principio. Estoy viendo como arreglarlo.


Ya lo he arreglado. Faltaba alinearlo verticalmente.
$objPHPExcel->getActiveSheet()->getStyle($letra.$pos)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);