2012-07-02 36 views
46

首先,我对PHPExcel很陌生。 我知道,这行代码将使格文本换行:PHPExcel和文本环绕

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

“D1”是所选择的小区。

而不是使用此代码我需要包装每个单元格,有没有办法让整个Excel工作表自动包装一切?

或者是否有更好的实践技术用于指定列?

+0

你想想循环到每一个细胞和应用包装? – HamZa

+4

循环效率非常低,所以我不会推荐它,但为一系列单元格设置样式是一个简单的调用 –

回答

87

适用于范围:

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

适用于列

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

完美。谢谢! – tehlivi

+1

我也面临同样的问题。它工作完美,但它显示字符串的最后一个字?我想先展示几个可以放入细胞的字符? – virus

+1

@virus - 那么也许你还需要设置垂直对齐方式 –

0

应用于列

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

您可能需要添加更多信息。 – OddDev