Câu hỏi Đặt màu ô nền trong PHPExcel


Làm cách nào để đặt màu cụ thể cho ô hiện hoạt khi tạo tài liệu XLS trong PHPExcel?


75
2017-07-21 08:32


gốc




Các câu trả lời:


$sheet->getStyle('A1')->applyFromArray(
    array(
        'fill' => array(
            'type' => PHPExcel_Style_Fill::FILL_SOLID,
            'color' => array('rgb' => 'FF0000')
        )
    )
);

Nguồn: http://bayu.freelancer.web.id/2010/07/16/phpexcel-advanced-read-write-excel-made-simple/


135
2017-07-21 13:26



Đây là cú pháp không đúng kể từ 2013-10-17. Tôi đã chỉnh sửa để phản ánh đúng cú pháp. - Matt Humphrey


function cellColor($cells,$color){
    global $objPHPExcel;

    $objPHPExcel->getActiveSheet()->getStyle($cells)->getFill()->applyFromArray(array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array(
             'rgb' => $color
        )
    ));
}

cellColor('B5', 'F28A8C');
cellColor('G5', 'F28A8C');
cellColor('A7:I7', 'F28A8C');
cellColor('A17:I17', 'F28A8C');
cellColor('A30:Z30', 'F28A8C');

enter image description here


71
2017-07-19 01:41



Các chức năng của bạn là ok, nhưng bạn đang sử dụng toàn cầu, và đó là một lỗi thực sự ... Bạn nên tận dụng các tính năng của PHP5. Thay vào đó, bạn có thể thử một hàm lambda như eval.in/39136 :) - Cito
làm tốt lắm, cảm ơn nó thực sự hiệu quả. - winnie damayo


Mã này sẽ hoạt động cho bạn:

 $PHPExcel->getActiveSheet()
        ->getStyle('A1')
        ->getFill()
        ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
        ->getStartColor()
        ->setRGB('FF0000')

Nhưng nếu bạn sử dụng nó nhiều lần, tôi khuyên bạn nên sử dụng applyFromArray.


26
2017-07-02 07:50





Có vẻ như có một lỗi với applyFromArray ngay bây giờ điều đó sẽ không chấp nhận màu sắc, nhưng điều này làm việc cho tôi:

$objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->getStartColor()
    ->setRGB('FF0000');

8
2018-04-24 18:47



Mặc dù nó là giải pháp thanh lịch hơn (như tôi thích OOP cách) nó đã không làm việc cho tôi: / Sử dụng @ user198003 cung cấp giải pháp - aur1mas


Điều này luôn chạy!

$sheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setRGB('FF0000');


8
2017-07-20 13:35



Trong một số phiên bản php không thể ngắt dòng tại lớp thuộc tính. Phiên bản cũ. - Rogerio de Moraes
QUAN TRỌNG! Hơn $ objPHPExcel như $ sheet là một định nghĩa từ lớp đối tượng PHPExcel. Bạn cần sử dụng như bạn đã khởi tạo (tại PHPExcel mới () xác định). - Rogerio de Moraes


$objPHPExcel
->getActiveSheet()
->getStyle('A1')
->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
->getStartColor()
->setRGB('colorcode'); //i.e,colorcode=D3D3D3

4
2017-07-11 11:17





$objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->getStartColor()
    ->getRGB();

1
2018-04-05 07:53