2012-07-02 9 views
46

Đầu tiên, tôi rất mới với PHPExcel. Tôi biết rằng dòng mã này sẽ làm cho gói văn bản của ô:PHPExcel and Text Wrapping

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

'D1' là ô được chọn.

Thay vì sử dụng mã này cho mỗi ô tôi cần gói, có cách nào để làm cho toàn bộ Excel Worksheet tự động bao bọc mọi thứ không?

Hoặc có kỹ thuật thực hành tốt hơn để sử dụng cho các cột được chỉ định không?

+0

bạn đã suy nghĩ về vòng lặp để mỗi tế bào và áp dụng các vỏ bánh ? – HamZa

+4

Looping là rất không hiệu quả, vì vậy tôi sẽ không khuyên bạn nên nó, nhưng thiết lập phong cách cho một loạt các tế bào là một cuộc gọi đơn giản –

Trả lời

87

Thoa lên một khoảng:

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

Thoa lên một cột

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

hoàn hảo. Cảm ơn! – tehlivi

+1

Tôi cũng phải đối mặt với cùng một vấn đề. Nó hoạt động hoàn hảo nhưng nó cho thấy từ cuối cùng của chuỗi? Tôi muốn thể hiện vài nhân vật đầu tiên có thể phù hợp với tế bào? – virus

+1

@virus - có lẽ bạn cần thiết lập căn chỉnh theo chiều dọc –

0

Thoa lên cột

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

Bạn có thể muốn thêm thông tin. – OddDev