정말 오랜만에 포스팅을 합니다! ㅎ;
조회된 데이터를 엑셀로 구성하여 다운로드를 해야 하는 작업들이 종종 발생합니다.
저 또한 종종 해당 기능을 개발하게 되면서 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", "이름" );
'Programing > Etc (Go, GAS ...)' 카테고리의 다른 글
[PHP] csv 파일을 읽어서 array로 변환하기 (0) | 2020.11.28 |
---|---|
[javascript] 클릭하여 문구 클립보드로 저장하기 (0) | 2019.03.05 |
[Javascript] 반응형 페이지에서 화면의 크기와 컨텐츠 크기의 차를 이용해보자! (0) | 2018.11.27 |
[HTML-모바일] 스마트폰 기기의 가로/세로 변경시 자동으로 이미지 크기 변경하기 (0) | 2018.11.26 |
[HTML] 모바일 페이지, a태그 클릭해서 이메일/전화 로 넘어가게 하 (0) | 2018.11.23 |