[PHP] PHPExcel 시트 추가하기[PHP] PHPExcel 시트 추가하기
Posted at 2020. 2. 11. 20:06 | Posted in PHP/PHP Library■ PHPExcel 시트 나누고 데이터 삽입하기
# 소스코드
<?php include "./classes/PHPExcel.php"; $objPHPExcel = new PHPExcel(); $rocketPunch = array( // 첫번째 시트에 사용될 데이터 값 "pinkPunch" => array( "1" => "PINK PUNCH" , "2" => "BIM BAM BUM" , "3" => "Love Is Over" , "4" => "Lucid Dream" , "5" => "Favorite" , "6" => "Do Something" ) // 두번째 시트에 사용될 데이터 값 , "redPunch" => array( "1" => "RED PUNCH" , "2" => "BOUNCY" , "3" => "So Solo" , "4" => "Fireworks" , "5" => "Paper Star" , "6" => "Lilac" , "7" => "Girl Friend" ) ); // @breif Worksheet 라는 이름으로 생성되는 기본 시트를 삭제한다. $objPHPExcel -> removeSheetByIndex(0); // @breif 생성할 시트의 순번 $sheetNum = 0; foreach($rocketPunch as $title => $album) { // @breif createSheet( ) 함수로 새로운 시트를 생성한다. $objWorkSheet = $objPHPExcel -> createSheet($sheetNum); // @breif 엑셀 시트 이름 지정 $objWorkSheet -> setTitle($title); // @breif 타이틀 영역 지정 $objWorkSheet -> setCellValue("A1", "NO."); $objWorkSheet -> setCellValue("B1", "Song"); // @breif 엑셀에 데이터 삽입 $row = 1; foreach($album as $key => $val) { $row++; $objWorkSheet -> setCellValue(sprintf("A%s", $row), $key); $objWorkSheet -> setCellValue(sprintf("B%s", $row), $val); } // @breif 각 행의 간격 $objWorkSheet -> getColumnDimension("A") -> setWidth(10); $objWorkSheet -> getColumnDimension("B") -> setWidth(30); // @breif 각 로우의 디자인 $objWorkSheet -> getStyle(sprintf("A1:B%s", $row)) -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objWorkSheet -> getStyle(sprintf("A1:B%s", $row)) -> getBorders() -> getAllBorders() -> setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objWorkSheet -> getStyle("A1:B1") -> getFont() -> setBold(true); $objWorkSheet -> getStyle("A1:B1") -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("CECBCA"); $objWorkSheet -> getStyle(sprintf("A2:B%s", $row)) -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("F4F4F4"); // @breif 숫자앞에 기본적으로 0을 붙일 수 있게 한다. $objWorkSheet -> getStyle(sprintf("A2:A%s", $row)) -> getNumberFormat() -> setFormatCode("00"); $sheetNum++; } // @breif 문서를 오픈할 시 첫번째 시트로 열리게 설정 $objPHPExcel -> setActiveSheetIndex(0); // @breif 파일의 저장형식이 utf-8일 경우 한글파일 이름은 깨지므로 euc-kr로 변환해준다. $filename = iconv("UTF-8", "EUC-KR", "울림_로켓펀치"); header("Content-Type:application/vnd.ms-excel"); header("Content-Disposition: attachment;filename=".$filename.".xls"); header("Cache-Control:max-age=0"); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5"); $objWriter -> save("php://output"); ?> |
# 출력결과
'PHP > PHP Library' 카테고리의 다른 글
[PHP] PHPExcel 날짜 표시 형식 처리하기 (0) | 2020.04.26 |
---|---|
[PHP] SimpleSql 라이브러리를 사용한 손쉬운 쿼리사용 (1) | 2018.04.16 |
[PHP] PHP 메일 발송 (5) | 2018.04.10 |
[PHP] PHPExcel 엑셀 파일 업로드 하고 내용 읽기 (0) | 2018.03.22 |
[PHP] PHPExcel 설치하고 엑셀파일 다운받기 (0) | 2018.03.21 |
[PHP] PHPExcel 서식 변경하기[PHP] PHPExcel 서식 변경하기
Posted at 2018. 8. 29. 18:35 | Posted in PHP■ PHPExcel 서식 변경하여 숫자값 나타내기
#01. 앞자리가 0으로 끝나는 문자열 출력하기
엑셀 문서 작업중에서는 앞자리가 0으로 끝나야 하는 경우의 수가 발생한다.
위 이미지처럼 셀 서식에서 미리 앞자리에 0이 삽입될 수 있게끔 서식을 지정하면 되는데.
PHPExcel에서도 0이 앞으로 나오게끔 할 수 있고 그것을 지원해 주는 함수가 존재한다.
<?php $objPHPExcel -> getActiveSheet() -> getStyle("A1") -> getNumberFormat() -> setFormatCode("00000"); ?> |
0이 앞자리에 들어갈 탭을 getStyle( )사용하여 지정하고 getNumberFormat( ), setFormatCode( ) 위 두개의 함수를 사용하면 가능한데.
그 예는 아래와 같다.
# 소스코드
<?php // 앞자리가 0으로 끝나는 숫자값을 number에 담는다. $arrVelvet[1] = array("number" => "00001", "name" => "아이린", "position" => "센터, 리더, 메인래퍼", "birthday" => "03월 29일");
|
이번에는 엑셀에서 천단위가 넘어가는 숫자값에 자동으로 콤마( , )가 삽입되는 서식이다.
이번에는 setFormatCode( ) 안에 #,##0 을 입력하면 된다.
<?php $objPHPExcel -> getActiveSheet() -> getStyle("A1") -> getNumberFormat() -> setFormatCode("#,##0"); ?> |
이 방식을 활용한 예제는 아래와 같다.
# 소스코드
<?php $objPHPExcel -> getActiveSheet() -> getStyle(sprintf("D2:D%s", $count)) -> getNumberFormat() -> setFormatCode("#,##0"); |
# 출력결과 - 엑셀 파일 다운로드
'PHP' 카테고리의 다른 글
cURL 연결 함수 (0) | 2018.08.30 |
---|---|
[PHP] 문장 / 문자열의 의 대소문자를 변환해주는 함수 (0) | 2018.08.30 |
[PHP] 변수에 달러 기호가 삽입되는경우 (0) | 2018.08.10 |
[PHP] DB 입출력시 따옴표( ' )를 처리방법 (0) | 2018.04.06 |
[PHP] 모바일 접속 여부 체크방법 (0) | 2018.03.29 |
[PHP] PHPExcel 엑셀 파일 업로드 하고 내용 읽기[PHP] PHPExcel 엑셀 파일 업로드 하고 내용 읽기
Posted at 2018. 3. 22. 09:37 | Posted in PHP/PHP Library■ 엑셀(*.xls) 파일 업로드 하고 내용 읽기
# 소스코드 - 엑셀 파일 업로드 excel_upload.php
<html> <html> <head> <title>:: PHPExcel 파일읽기 ::</title> </head> <form enctype="multipart/form-data" action="./excel_read.php" method="post"> <table border="1"> <tr> <th style="background-color:#DCDCDC">파일</th> <td><input type="file" name="excelFile"/></td> </tr> <tr> <th style="background-color:#DCDCDC">등록</th> <td style="text-align:center;"><input type="submit" value="업로드"/></td> </tr> </form> </html> 출처: http://wickedmagic.tistory.com/584?category=613655 [사악미소의 현대마법의 공방] |
# 소스코드 - 엑셀 파일 읽기 excel_read.php
<?php $extension = strtoupper(pathinfo($filename, PATHINFO_EXTENSION)); |
# 출력결과 - 엑셀 파일 업로드
# 출력결과 - 엑셀 내용 출력
'PHP > PHP Library' 카테고리의 다른 글
[PHP] SimpleSql 라이브러리를 사용한 손쉬운 쿼리사용 (1) | 2018.04.16 |
---|---|
[PHP] PHP 메일 발송 (5) | 2018.04.10 |
[PHP] PHPExcel 설치하고 엑셀파일 다운받기 (0) | 2018.03.21 |
[PHP] PHP QR코드 이미지 저장하고 띄우기 (0) | 2018.03.16 |
[PHP] PHP QR코드 세팅하기 (0) | 2018.03.15 |
[PHP] PHPExcel 설치하고 엑셀파일 다운받기[PHP] PHPExcel 설치하고 엑셀파일 다운받기
Posted at 2018. 3. 21. 17:08 | Posted in PHP/PHP Library■ PHPExcel 라이브러리 설치하기
01. https://github.com/PHPOffice/PHPExcel 사이트에 접속하여 PHP Excel 라이버러리 파일을 다운받는다.
02. 다운받은 파일의 압축을 해제한다.
■ Excel 파일 다운받기
# 소스코드
출처: http://wickedmagic.tistory.com/583 [사악미소의 현대마법의 공방]
<?php include "./Classes/PHPExcel.php"; $objPHPExcel = new PHPExcel(); $arrTwice = array(); $arrTwice[1] = array("name" => "나연", "position" => "리드보컬, 리드댄서", "birthday" => "09월 22일"); $arrTwice[2] = array("name" => "정연", "position" => "리드보컬", "birthday" => "11월 01일"); $arrTwice[3] = array("name" => "모모", "position" => "서브보컬, 메인댄서, 서브래퍼", "birthday" => "11월 09일"); $arrTwice[4] = array("name" => "사나", "position" => "서브보컬", "birthday" => "12월 29일"); $arrTwice[5] = array("name" => "지효", "position" => "리더, 메인보컬", "birthday" => "02월 01일"); $arrTwice[6] = array("name" => "미나", "position" => "서브보컬, 메인댄서, 서브래퍼", "birthday" => "03월 24일"); $arrTwice[7] = array("name" => "다현", "position" => "리드래퍼, 서브보컬", "birthday" => "05월 28일"); $arrTwice[8] = array("name" => "채영", "position" => "메인래퍼, 서브보컬", "birthday" => "04월 23일"); $arrTwice[9] = array("name" => "쯔위", "position" => "서브보컬, 리드댄서", "birthday" => "06월 14일"); $objPHPExcel -> setActiveSheetIndex(0) -> setCellValue("A1", "NO.") -> setCellValue("B1", "이름") -> setCellValue("C1", "포지션") -> setCellValue("D1", "생일"); $count = 1; foreach($arrTwice as $key => $val) { $num = 1 + $key; $objPHPExcel -> setActiveSheetIndex(0) -> setCellValue(sprintf("A%s", $num), $key) -> setCellValue(sprintf("B%s", $num), $val['name']) -> setCellValueExplicit(sprintf("C%s", $num), $val['position']) -> setCellValue(sprintf("D%s", $num), $val['birthday']); $count++; } // 가로 넓이 조정 $objPHPExcel -> getActiveSheet() -> getColumnDimension("A") -> setWidth(6); $objPHPExcel -> getActiveSheet() -> getColumnDimension("B") -> setWidth(12); $objPHPExcel -> getActiveSheet() -> getColumnDimension("C") -> setWidth(30); $objPHPExcel -> getActiveSheet() -> getColumnDimension("D") -> setWidth(15); // 전체 세로 높이 조정 $objPHPExcel -> getActiveSheet() -> getDefaultRowDimension() -> setRowHeight(15); // 전체 가운데 정렬 $objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A1:D%s", $count)) -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // 전체 테두리 지정 $objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A1:D%s", $count)) -> getBorders() -> getAllBorders() -> setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); // 타이틀 부분 $objPHPExcel -> getActiveSheet() -> getStyle("A1:D1") -> getFont() -> setBold(true); $objPHPExcel -> getActiveSheet() -> getStyle("A1:D1") -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("CECBCA"); // 내용 지정 $objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A2:D%s", $count)) -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("F4F4F4"); // 시트 네임 $objPHPExcel -> getActiveSheet() -> setTitle("트와이스"); // 첫번째 시트(Sheet)로 열리게 설정 $objPHPExcel -> setActiveSheetIndex(0); // 파일의 저장형식이 utf-8일 경우 한글파일 이름은 깨지므로 euc-kr로 변환해준다. $filename = iconv("UTF-8", "EUC-KR", "트와이스_TWICE"); // 브라우저로 엑셀파일을 리다이렉션 header("Content-Type:application/vnd.ms-excel"); header("Content-Disposition: attachment;filename=".$filename.".xls"); header("Cache-Control:max-age=0"); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5"); $objWriter -> save("php://output"); ?> |
# 출력결과
위 이미지와 같이 엑셀파일이 생성되는 것을 확인 할 수 있다.
'PHP > PHP Library' 카테고리의 다른 글
[PHP] SimpleSql 라이브러리를 사용한 손쉬운 쿼리사용 (1) | 2018.04.16 |
---|---|
[PHP] PHP 메일 발송 (5) | 2018.04.10 |
[PHP] PHPExcel 엑셀 파일 업로드 하고 내용 읽기 (0) | 2018.03.22 |
[PHP] PHP QR코드 이미지 저장하고 띄우기 (0) | 2018.03.16 |
[PHP] PHP QR코드 세팅하기 (0) | 2018.03.15 |