Imposta il colore della cella di sfondo in PHPExcel


93

Come impostare un colore specifico sulla cella attiva durante la creazione di un documento XLS in PHPExcel?


Lo faccio con la soluzione di Muntashir Akon. Vedi sotto con 33 voti (adesso).
LUISAO

Risposte:



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

inserisci qui la descrizione dell'immagine


6
Le tue funzioni sono ok, ma stai usando globale, e questo è un vero errore ... Dovresti usare le funzionalità di PHP5. Invece, potresti provare una funzione lambda come eval.in/39136 :)
Cito

35

Questo codice dovrebbe funzionare per te:

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

Ma se ti preoccupi di usarlo più e più volte, ti consiglio di usare applyFromArray.


Questa soluzione ha funzionato per me. Provo ad applyFromArray, ma non succede nulla.
LUISAO

11

Questo funziona sempre!

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


2
In alcune versioni di php non è possibile interrompere la riga nella classe dell'attributo. Vecchia versione.
Rogerio de Moraes

2
IMPORTANTE! Than $ objPHPExcel come $ sheet è una definizione della classe di oggetti PHPExcel. È necessario utilizzare come hai istanziato (in new PHPExcel () definire).
Rogerio de Moraes

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

10

Sembra che in questo momento ci sia un bug applyFromArrayche non accetta il colore, ma per me ha funzionato:

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

1
Sebbene sia una soluzione più elegante (come preferisco il modo OOP) non ha funzionato per me: / Soluzione fornita da @ user198003
Aurimas

6

Ecco come lo fai PHPSpreadsheet, la versione più recente diPHPExcel

$spreadsheet = new Spreadsheet();

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

approccio alternativo:

$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

Puoi applicare facilmente i colori su celle e righe.

$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'); 
});
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.