Setel warna sel latar belakang di PHPExcel


93

Bagaimana cara mengatur warna tertentu ke sel aktif saat membuat dokumen XLS di PHPExcel?


Saya menyelesaikannya dengan solusi Muntashir Akon. Lihat di bawah dengan 33 suara (sekarang).
LUISAO

Jawaban:



83
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');

masukkan deskripsi gambar di sini


6
Fungsi Anda baik-baik saja, tetapi Anda menggunakan global, dan itu adalah kesalahan nyata ... Anda harus menggunakan fitur PHP5. Sebagai gantinya, Anda dapat mencoba fungsi lambda seperti eval.in/39136 :)
Cito

35

Kode ini seharusnya bekerja untuk Anda:

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

Tetapi jika Anda repot-repot menggunakan ini berulang kali, saya sarankan untuk menggunakan applyFromArray.


Solusi ini berhasil untuk saya. Saya mencoba applyFromArray, tetapi tidak ada yang terjadi.
LUISAO

11

Ini selalu berjalan!

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


2
Dalam beberapa versi php tidak dapat memutus baris pada kelas atribut. Versi lama.
Rogerio de Moraes

2
PENTING! Dari $ objPHPExcel seperti $ sheet adalah definisi dari kelas objek PHPExcel. Anda perlu menggunakan seperti yang Anda buat (di PHPExcel baru () define).
Rogerio de Moraes

$ objPHPExcel-> getActiveSheet () -> getStyle ('A'. $ row. ': G'. $ row) -> getFill () -> setFillType (PHPExcel_Style_Fill :: FILL_EMENTS) -> getStartColor () -> setRGB (' FF0000 ');
Defkon1

10

Sepertinya ada bug applyFromArraysaat ini yang tidak mau menerima warna, tapi ini berhasil untuk saya:

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

1
Meskipun ini adalah solusi yang lebih elegan (karena saya lebih suka cara OOP) itu tidak berhasil untuk saya: / Digunakan @ user198003 menyediakan solusi
Aurimas

6

Berikut adalah cara Anda melakukannya dalam PHPSpreadsheetversi terbaruPHPExcel

$spreadsheet = new Spreadsheet();

$spreadsheet->getActiveSheet()->getStyle('A1:F1')->applyFromArray([
    'fill' => [
            'fillType' => Fill::FILL_SOLID,
            'startColor' => [
                'argb' => 'FFDBE2F1',
            ]           
    ],
]);

pendekatan alternatif:

$spreadsheet->getActiveSheet()
    ->getStyle('A1:F1')
    ->getFill()
    ->setFillType(Fill::FILL_SOLID)
    ->getStartColor()->setARGB('FFDBE2F1');

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

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


0

Anda dapat dengan mudah menerapkan warna pada sel dan baris.

$sheet->cell(1, function($row) 
{ 
  $row->setBackground('#CCCCCC'); 
});

$sheet->row(1, ['Col 1', 'Col 2', 'Col 3']); 
$sheet->row(1, function($row) 
{ 
  $row->setBackground('#CCCCCC'); 
});
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.