Programing/Etc (Go, GAS ...)
[PHPExcel] 엑셀을 그릴때 자주 쓰이는 스타일 함수 정리!
뱅수
2019. 7. 2. 15:13
정말 오랜만에 포스팅을 합니다! ㅎ;
조회된 데이터를 엑셀로 구성하여 다운로드를 해야 하는 작업들이 종종 발생합니다.
저 또한 종종 해당 기능을 개발하게 되면서 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", "이름" );