PHPExcel에서 배경 셀 색상 설정


93

PHPExcel에서 XLS 문서를 만들 때 특정 색상을 활성 셀에 설정하는 방법은 무엇입니까?


나는 Muntashir Akon의 솔루션으로 그것을 완료합니다. 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 개체 클래스의 정의입니다. 인스턴스화 한 것처럼 사용해야합니다 (new PHPExcel () 정의에서).
Rogerio de Moraes 2015 년

$ 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
/ user198003 제공하는 솔루션 @ 사용 : 더 우아한 해결책이 있지만 (나는 OOP 방식을 선호으로) 나를 위해 일하지 않았다
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

1
$objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->getStartColor()
    ->getRGB();


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.