PHPExcelで背景セルの色を設定する


93

PHPExcelでXLSドキュメントを作成するときに特定の色をアクティブセルに設定する方法


ムンターシルエイコンの解決策でそれを成し遂げる。以下を参照して、33票(現在)。
LUISAO

回答:



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

ここに画像の説明を入力してください


6
あなたの機能は大丈夫ですが、あなたはグローバルを使用しています、そしてそれは本当のエラーです...あなたはPHP5の機能を利用するべきです。代わりに、eval.in / 39136などのラムダ関数を試すことができます:)
Cito

35

このコードはあなたのために働くはずです:

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

ただし、これを何度も何度も使用する場合は、を使用することをお勧めしapplyFromArrayます。


この解決策は私にとってうまくいきました。applyFromArrayを試しましたが、何も起こりません。
LUISAO

11

いつも走っている!

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


2
一部のphpバージョンでは、属性クラスで改行できません。古いバージョン。
Rogerio de Moraes 2015年

2
重要!$ sheetのような$ objPHPExcelは、オブジェクトクラスPHPExcelからの定義です。(新しいPHPExcel()で)インスタンス化したように使用する必要があります。
Rogerio de Moraes

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

10

applyFromArray現在、色を受け入れないバグがあるようですが、これは私にとってはうまくいきました:

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

1
それはよりエレガントなソリューションですが(私はOOPの方法を好むので)、私にとってはうまくいきませんでした:/ @ user198003提供のソリューションを使用
Aurimas

6

ここではあなたがそれを行う方法でPHPSpreadsheetの最新バージョン、PHPExcel

$spreadsheet = new Spreadsheet();

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

代替アプローチ:

$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



0

セルと行に色を簡単に適用できます。

$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'); 
});
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.