정말 오랜만에 포스팅을 합니다! ㅎ;

 

조회된 데이터를 엑셀로 구성하여 다운로드를 해야 하는 작업들이 종종 발생합니다.

저 또한 종종 해당 기능을 개발하게 되면서 PHPExcel을 잘 가져다가 쓰는데, 자주 쓰지 않다보니 스타일에 대해서 구글링을 자꾸하게 됩니다.

 

헤매지 않고 바로 찾아볼 수 있도록 포스팅 합니다.

엑셀로 데이터를 만들어서 다운로드를 할 경우 대부분이 테이블 형태일 것입니다.

 

이때 자주 쓰는 함수 :

1. 틀 고정

$excel->getActiveSheet()->freezePane('A4');

위처럼 작성하게 되면, A3 행까지의 헤더가 고정이 된다.

 

2. 행 높이

//1행의 높이를 35로 지정

$excel->getActiveSheet()->getRowDimension ( 1 )->setRowHeight ( 35 );

 

3. 셀의 내용 세로 정렬

//A1부터 F1까지의 셀의 세로 정렬 - 가운데 정렬

$excel->getActiveSheet()->getStyle ( "A1:F1" )->getAlignment ()->setVertical (PHPExcel_Style_Alignment::VERTICAL_CENTER );

 

4. 셀의 내용 가로 정렬

//A1부터 F1까지의 셀의 가로 정렬 : 가운데 정렬

$excel->getActiveSheet()->getStyle ( "A1:F1" )->getAlignment ()->setHorizontal ( PHPExcel_Style_Alignment::HORIZONTAL_CENTER );

 

5. 셀의 배경색 관련

//셀의 배경색을 단색으로 채울 것

$excel->getActiveSheet()->getStyle ( "A1:F1" )->getFill ()->setFillType ( PHPExcel_Style_Fill::FILL_SOLID );

 

//셀의 배경색 지정 (진한 회색)

$excel->getActiveSheet()->getStyle ( "A1:F1" )->getFill ()->getStartColor ()->setRGB ( 'A9A9A9' );

 

6. 셀의 테두리 지정

// 셀의 테두리 지정 (바깥쪽 테두리 - 진하게)

$excel->getActiveSheet()->getStyle ( "A1:F1" )->getBorders ()->getOutline ()->setBorderStyle ( PHPExcel_Style_Border::BORDER_THICK );

 

  • 테두리 두께 관련 기타 옵션
    • PHPExcel_Style_Border::BORDER_MEDIUM : 일반 두께
    • PHPExcel_Style_Border::BORDER_THIN : 얅은 두께
  • 셀 테두리 종류 관련 옵션
    • 바깥쪽 테두리 : 예제의 소스와 동일  ->getOutline()->
    • 셀 전체 (바깥 + 안쪽) :  ->getAllBorders()->
    • 안쪽 : ->getInside()->
    • 세로선 : ->getVertical()->
    • 가로선 : ->getHorizontal()->

7.  폰트 색

// A1부터 F1까지의 셀의 폰트 색상 하얀색

$excel->getActiveSheet()->getStyle ( "A1:F1" )->getFont ()->getColor ()->setRGB ( 'FFFFFF' );

 

8. 폰트 두께

// A1부터 F1까지의 셀의 폰트들 굵게

$excel->getActiveSheet()->getStyle ( "A1:F1" )->getFont ()->setBold ( true );

 

9. 셀에 데이터 입력

//B1 셀에 "이름" 입력

excel->getActiveSheet()->setCellValue ( "B1", "이름" );

+ Recent posts