Setel warna sel latar belakang di PHPExcel

93

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

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

Jawaban:

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

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

pengguna198003
sumber
5
Ini adalah sintaks yang salah pada 2013-10-17. Saya telah mengedit untuk mencerminkan sintaks yang benar.
Matt Humphrey
Bagaimana cara mengatur warna latar belakang di perpustakaan Excel Laravel?
OPV
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

Isa tak terbatas
sumber
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.

Muntashir Akon
sumber
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');

Rogerio de Moraes
sumber
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');
bercanda
sumber
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');
deerawan
sumber
4
$objPHPExcel
->getActiveSheet()
->getStyle('A1')
->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
->getStartColor()
->setRGB('colorcode'); //i.e,colorcode=D3D3D3
Vatsal Patel
sumber
1
$objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->getStartColor()
    ->getRGB();
Abhishek Jaiswal
sumber
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'); 
});
pankaj
sumber