PHPexcel celda multilinea

Iniciado por OssoH, 7 Marzo 2014, 18:05 PM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

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:



$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


$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.


#!drvy

El caracter \n es nueva linea y se parsea SOLO si va entre comillas dobles.

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

Saludos

OssoH

#2
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);