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

use*_*003 88 phpexcel

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

use*_*003 144

$sheet->getStyle('A1')->applyFromArray(
    array(
        'fill' => array(
            'type' => PHPExcel_Style_Fill::FILL_SOLID,
            'color' => array('rgb' => 'FF0000')
        )
    )
);
Run Code Online (Sandbox Code Playgroud)

资料来源:http://bayu.freelancer.web.id/2010/07/16/phpexcel-advanced-read-write-excel-made-simple/

  • 截至2013-10-17,这是不正确的语法.我已编辑以反映正确的语法. (5认同)

Lim*_*isa 79

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');
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 你的功能还可以,但你使用全局,这是一个真正的错误...你应该使用PHP5功能.相反,你可以尝试一个lambda函数,如https://eval.in/39136 :) (6认同)

Mun*_*kon 32

此代码应该适合您:

 $PHPExcel->getActiveSheet()
        ->getStyle('A1')
        ->getFill()
        ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
        ->getStartColor()
        ->setRGB('FF0000')
Run Code Online (Sandbox Code Playgroud)

但如果你一遍又一遍地使用它,我建议使用applyFromArray.


Rog*_*aes 10

这总是在运行!

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

  • 在某些php版本中,不能在属性类中断行.旧版. (2认同)
  • **重要!比$ sheet更好的$ objPHPExcel是来自对象类PHPExcel的定义.您需要像实例化一样使用(在新的PHPExcel()定义中).** (2认同)

joc*_*ull 9

似乎applyFromArray现在有一个不接受颜色的错误,但这对我有用:

$objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->getStartColor()
    ->setRGB('FF0000');
Run Code Online (Sandbox Code Playgroud)


dee*_*wan 6

Here is how you do it in PHPSpreadsheet, the newest version of PHPExcel

$spreadsheet = new Spreadsheet();

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

alternative approach:

$spreadsheet->getActiveSheet()
    ->getStyle('A1:F1')
    ->getFill()
    ->setFillType(Fill::FILL_SOLID)
    ->getStartColor()->setARGB('FFDBE2F1');
Run Code Online (Sandbox Code Playgroud)