Chiều cao tự động ngắt từ PHPExcel

Nếu văn bản quá dài để hiển thị trong một ô, Bảng tính cho phép bạn ngắt dòng văn bản để làm cho văn bản hiển thị trên nhiều dòng trong ô hoặc hợp nhất các ô để kết hợp hai hoặc nhiều ô liền kề thành một ô lớn hơn/dài hơn

Hợp nhất các ô

Để hợp nhất các ô, hãy làm theo hướng dẫn bên dưới

  1. Chọn các ô mà bạn muốn hợp nhất

    Ghi chú

    Đảm bảo rằng dữ liệu bạn muốn hiển thị trong ô được hợp nhất được chứa trong ô phía trên bên trái của phạm vi đã chọn, vì chỉ nội dung của ô này sẽ còn lại trong ô được hợp nhất. Dữ liệu trong các ô khác sẽ bị xóa

  2. Trong nhóm Căn chỉnh trong tab Trang chủ, nhấp vào mũi tên thả xuống của nút Hợp nhất ô và chọn một trong các mục sau

    Ernie hỏi liệu có cách nào để Excel tự động điều chỉnh chiều cao của hàng trong các ô được hợp nhất không. Anh ấy chỉ ra rằng nếu một ô được đặt với tính năng ngắt dòng văn bản được bật, thì Excel sẽ tự động điều chỉnh chiều cao hàng cho ô để tất cả văn bản được bao dòng đều hiển thị. Nếu sau đó bạn hợp nhất ô đó với một ô liền kề, ngay cả khi ô liền kề đã bật ngắt dòng văn bản, thì chiều cao hàng của ô được hợp nhất sẽ không được điều chỉnh để tất cả văn bản được hiển thị

    Lý do chính xác khiến Excel làm điều này là không rõ ràng, nhưng không có cách thực chất nào xung quanh nó—Excel chỉ làm điều đó. Thoạt nhìn, bạn có thể nghĩ rằng mình có thể sử dụng tính năng AutoFit (Cells. Định dạng. AutoFit hoặc Format. hàng. AutoFit) để điều chỉnh chiều cao của hàng chứa ô được hợp nhất. Tuy nhiên, làm như vậy dường như không có tác dụng—AutoFit dường như hoàn toàn bỏ qua các ô đã hợp nhất khi thực hiện phép thuật của nó

    Một cách giải quyết vấn đề là sử dụng macro để đặt chiều cao của hàng thành chiều cao mong muốn. Một cách tiếp cận tốt là để macro xác định chiều rộng cột của khu vực đã hợp nhất, hủy hợp nhất các cột, đặt cột đầu tiên thành chiều rộng đó và xác định chiều cao hàng cần thiết để Tự động Khớp nó. Sau đó, macro có thể đặt lại chiều rộng cột, hợp nhất các ô và đặt chiều cao hàng mới. (Nếu điều đó nghe có vẻ nhiều, đó là. Một macro như vậy sẽ không tầm thường để tạo ra. )

    Nếu bạn không muốn sử dụng macro, bạn có thể đánh lừa Excel để thiết lập đúng chiều cao của hàng. Bạn thực hiện việc này bằng cách sử dụng một cột riêng biệt được tạo cho mục đích rõ ràng là đặt chiều cao hàng. Quá trình này được mô tả trong các bước chung sau đây. (Các bước này giả định rằng bạn đang hợp nhất các ô trong cột A và B và bảng dữ liệu của bạn chỉ bao gồm các cột từ A đến K. )

    1. Hợp nhất các ô trong cột A và B theo ý muốn
    2. Trong cột Z (hoặc một số cột khác bên ngoài phạm vi bảng dữ liệu của bạn, nhưng không liền kề ngay lập tức), hãy đặt tham chiếu công thức đơn giản vào cột A, như trong =A1
    3. Đảm bảo định dạng văn bản của cột Z hoàn toàn giống như trong ô được hợp nhất, ngoại trừ việc hợp nhất. (Cột Z không được hợp nhất với bất kỳ thứ gì, cũng không được đánh dấu là đã hợp nhất. )
    4. Làm cho chiều rộng của cột Z hẹp hơn một chút so với chiều rộng kết hợp của cột A và B

    Hiệu quả của các bước này là Excel sẽ đặt chiều cao hàng dựa trên nội dung của cột Z, điều này vừa xảy ra để khớp với nội dung của ô được hợp nhất trong cột A và B. Tất nhiên, điều này cho phép hiển thị tất cả văn bản trong ô đã hợp nhất. Điều duy nhất bạn cần làm là đảm bảo rằng bạn không in nội dung của cột Z khi thực hiện in.

    Php – Đặt chiều cao tự động trong PHPExcel không hoạt động

    phpphpexcelyiiyii2

    Tôi đang tạo Excel bằng PHPExcel

    Tất cả mã hoạt động tốt. Nhưng mã chiều cao tự động không hoạt động

    Tôi đã thử đoạn mã sau

    Áp dụng chiều cao hàng trên hàng cụ thể

    $objPHPExcel->getActiveSheet()->getRowDimension('7')->setRowHeight(-1);

    Áp dụng chiều cao hàng cho tất cả các hàng

    $objPHPExcel->getActiveSheet()->getDefaultRowDimension(1)->setRowHeight(-1);

    Tôi cũng đã thử thuộc tính bọc từ với nó

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

    Nhưng nó cho tôi kết quả như dưới đây

    Ghi chú. Làm việc trong MS office,Không làm việc trong Apache open Office và
    LibreOffice

    Giải pháp tốt nhất

    Vừa thêm phần sau vào 01simple. ví dụ php

    $value = "To be or not to be-that is the question: whether 'tis nobler in the mind to suffer the slings and arrows of outrageous fortune, or to take arms against a sea of troubles, and, by opposing, end them."; $objPHPExcel->getActiveSheet()->setCellValue('A12', $value); $objPHPExcel->getActiveSheet()->getRowDimension(12)->setRowHeight(-1); $objPHPExcel->getActiveSheet()->getStyle('A12')->getAlignment()->setWrapText(true);

    và điều này tạo đầu ra được bao bọc chính xác cho cả Excel2007 và Excel5 Writers

    Giải pháp liên quan

    Chiều cao tự động của hàng PHPExcel trên các ô được hợp nhất với/ngăn Văn bản

    Bạn cũng có thể làm như thế này

    1. Hợp nhất các ô bạn muốn, chẳng hạn. A7. C7
    2. Sao chép ngữ cảnh của nó vào một ô chẳng hạn Z7
    3. Đặt chiều rộng của các ô được hợp nhất thành Z7
    4. Áp dụng Wrap Text cho Z7
    5. Làm cho Z7 không hiển thị

    câu hỏi liên quan

    Làm cách nào để ngắt dòng văn bản trong PHP Excel?

    Viết một ký tự xuống dòng "\n" trong một ô (ALT+"Enter") Trong Microsoft Office Excel, bạn có thể ngắt dòng trong một ô bằng cách nhấn ALT+"Enter". Khi bạn làm điều đó, nó sẽ tự động bật "ngăn văn bản" cho ô.

    Làm cách nào để đặt độ rộng cột trong Excel bằng PHP?

    $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');

Chủ đề