PHPExcel'de Arka plan hücre rengini ayarla


93

PHPExcel'de XLS belgesi oluştururken belirli rengi etkin hücreye nasıl ayarlayabilirim?


Muntashir Akon'un çözümüyle hallediyorum. 33 oyla aşağıya bakın (şimdi).
LUISAO

Yanıtlar:



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

görüntü açıklamasını buraya girin


6
İşlevleriniz sorun değil, ancak global kullanıyorsunuz ve bu gerçek bir hata ... PHP5 özelliklerini kullanmalısınız. Bunun yerine, eval.in/39136 :)
Cito

36

Bu kod sizin için çalışmalıdır:

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

Ama bunu tekrar tekrar zahmet ediyorsanız, kullanmanızı tavsiye ederim applyFromArray.


Bu çözüm benim için çalıştı. ApplyFromArray'i deniyorum ama hiçbir şey olmuyor.
LUISAO

11

Bu her zaman koşuyor!

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


2
Bazı php sürümlerinde öznitelik sınıfında satırı kesemezsiniz. Eski versiyon.
Rogerio de Moraes

3
ÖNEMLİ! $ ObjPHPExcel'e göre, $ sheet gibi, PHPExcel nesne sınıfından bir tanımlamadır. Örneğiniz gibi kullanmanız gerekir (yeni PHPExcel () tanımında).
Rogerio de Moraes

1
$ objPHPExcel-> getActiveSheet () -> getStyle ('A'. $ satır. ': G'. $ satır) -> getFill () -> setFillType (PHPExcel_Style_Fill :: FILL_SOLID) -> getStartColor () -> setRGB (' FF0000 ');
Defkon1

10

applyFromArrayŞu anda renk kabul etmeyen bir hata var gibi görünüyor , ancak bu benim için çalıştı:

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

1
Daha zarif bir çözüm olmasına rağmen (OOP yöntemini tercih ettiğim için) benim için işe yaramadı: / Kullanıldı @ user198003 çözüm sağladı
Aurimas

6

İşte bunu nasıl yapıyorsunuz PHPSpreadsheet, en yeni sürümüPHPExcel

$spreadsheet = new Spreadsheet();

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

Alternatif yaklaşım:

$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

Renkleri hücreye ve satırlara kolayca uygulayabilirsiniz.

$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'); 
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.