2011-05-11 22 views
39

tengo problema con php sobresalir,cómo hacer nuevas líneas en una celda usando PHPExcel

Quiero hacer nueva línea en una celda pero no puedo, he intentado usar \ n o < br/> pero no funciona este es mi código:

$objPHPExcel->getActiveSheet()->setCellValue('H5', 'Hello\nWorld'); // i need this show in two line 
$objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setWrapText(true); 

fyi: mi formato excel es xls not xlsx. muchas gracias :)

+2

¿Su H5 real celda de referencia o código de –

+0

% de H @ Marcos Baker, lo siento, solo ha tecleado mal. en realidad esto es para la celda H5. Acabo de actualizar mi pregunta, muchas gracias :) – bungdito

+1

OK, segunda pregunta (viendo como la cambiaste cuando editaste): 'Hello \ nWorld' o "Hello \ nWorld"? Se aplica la cotización PHP estándar para cadenas: las comillas dobles hacen una diferencia en el \ n –

Respuesta

82
$objPHPExcel->getActiveSheet()->setCellValue('H5', "Hello\nWorld"); 
$objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setWrapText(true); 

funciona para mí ...

Siempre debe utilizar double quotes cuando se agrega secuencias de escape en una cadena PHP.

+4

. Es útil tener en cuenta que si hace esto en una celda que ha creado al fusionar otras celdas, debe especificar todas las celdas por su asignación original . Por ejemplo, si crea B2 fusionando B2-E6, entonces el argumento para getStyle es 'B2: E6' – jerrygarciuh

+0

, esto funciona en su ejemplo pero quiero resultados como Hello \ n World DEMO (nueva línea después de Hello) .pero aquí dos líneas nuevas creado así que ¿cómo puedo resolver esto? – himansu

+0

funciona para mí con comillas dobles. –

19

se debe utilizar 'r' para entrar en la nueva línea en Excel con PHP

y utilizar comillas dobles cuando se agrega secuencias de escape en una cadena PHP.

$objPHPExcel->getActiveSheet()->setCellValue('H5', "Hello\r World"); 
    $objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setWrapText(true); 
+3

+1 for \ r Esta debería ser la respuesta aceptada. Sálvame el día con Gracias. –

+1

\ n funciona bien para mí al –

+0

Es posible que desee probar PHP_EOL ya que el nuevo separador de línea es específico del sistema operativo. –

8

respuesta mejorada sobre la base de Ravin y otros

$objPHPExcel 
    ->getActiveSheet() 
    ->setCellValue('H5', "Hello".PHP_EOL." World"); 

$objPHPExcel 
    ->getActiveSheet() 
    ->getStyle('H5') 
    ->getAlignment() 
    ->setWrapText(true); 
+0

'PHP_EOL' es inútil en este caso, ya que dará un carácter EOL basado en el sistema operativo donde se ejecuta el script php (muy probable Linux/servidor UNIX), pero el archivo probablemente se abrirá Windows, donde la EOL predeterminada será diferente. – mkilmanas

-1

Para lograr siguiente línea, pero la exportación forxcel misma célula, ésta es la solución más sencilla.

<tr> 
    <td style="wrap-text: true"> 
     Test 
     <br /> 
     Test2 
    </td> 
</tr> 
+0

prueba
Prueba2 –

Cuestiones relacionadas