2012-07-02 29 views
46

En primer lugar, soy muy nuevo en PHPExcel. sé que esta línea de código hará que la celda de texto-wrap: serPHPExcel y envoltura de texto

$objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setWrapText(true); 

'D1' en la celda elegida.

En lugar de utilizar este código para cada celda que necesito envolver, ¿hay alguna manera de hacer que toda la hoja de cálculo de Excel lo envuelva automáticamente todo?

¿O existe una mejor técnica de práctica para usar para columnas específicas?

+0

¿Pensaste en bucle a cada célula y aplicar las envoltura? – HamZa

+4

Looping es muy ineficiente, por lo que no lo recomendaría, pero el estilo de configuración para un rango de celdas es una simple llamada –

Respuesta

87

se aplican a un rango:

$objPHPExcel->getActiveSheet()->getStyle('D1:E999') 
    ->getAlignment()->setWrapText(true); 

Aplicar a una columna

$objPHPExcel->getActiveSheet()->getStyle('D1:D'.$objPHPExcel->getActiveSheet()->getHighestRow()) 
    ->getAlignment()->setWrapText(true); 
+0

Perfect. ¡Gracias! – tehlivi

+1

También estoy enfrentando el mismo problema. Funciona perfecto, pero muestra la última palabra de la cadena? Quiero mostrar los primeros caracteres que pueden caber en la celda? – virus

+1

@virus - entonces quizás también deba establecer la alineación vertical –

0

Aplicar a la columna

$highestRow = $$objPHPExcel->getActiveSheet()->getHighestRow(); 
for ($row = 1; $row <= $highestRow; $row++){ 
    $sheet->getStyle("D$row")->getAlignment()->setWrapText(true); 
} 
14
$objPHPExcel->getDefaultStyle()->getAlignment()->setWrapText(true); 
+3

Es posible que desee agregar más información. – OddDev

Cuestiones relacionadas