在PHPExcel中设置背景单元格颜色


93

在PHPExcel中创建XLS文档时,如何为活动单元格设置特定颜色?


我用Muntashir Akon的解决方案来完成它。看到下面,以33票(现在)。
LUISAO

Answers:



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功能。相反,你可以尝试lambda函数如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 2015年

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

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'); 
});
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.