[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 |
[PHP] ERROR : unterminated string literal[PHP] ERROR : unterminated string literal
Posted at 2018. 3. 19. 09:31 | Posted in PHP■ 에러 : unterminated string literal
기존 코드를 PHP5 버전에서 PHP7 버전으로 옮기고 아파치 버전도 2.4로 올린 환경에서 사용중 발생하였다.
# 소스코드 - 에러가 발생한 경우
<?php |
# 출력결과
에러가 발생했던 이유는 \n의 사용중에 문제가 발생하였다.
기존 PHP5버전에서는 위 코드가 잘 작동하였지만 PHP7부터는
unterminated string literal 발생하더라.
# 소스코드 - 에러가 발생하지 않는 경우
<?php |
무언가 설정을 바꿔주면 해결이 될 것으로 생각이 되지만.
그부분이 어디인지는 파악하지 못하였고.
그런 부분을 일부러 건드리기보다는
PHP7버전의 기본적인 설정에 최대한 따르는 것이 좋다고 생각하므로.
앞으로는 \\n을 붙여서 사용하려고 한다.
'PHP' 카테고리의 다른 글
[PHP] PHPExcel 서식 변경하기 (2) | 2018.08.29 |
---|---|
[PHP] 변수에 달러 기호가 삽입되는경우 (0) | 2018.08.10 |
[PHP] DB 입출력시 따옴표( ' )를 처리방법 (0) | 2018.04.06 |
[PHP] 모바일 접속 여부 체크방법 (0) | 2018.03.29 |
[PHP] PDO 사용법 정리 (7) | 2018.03.27 |
[BLOG] 사이트맵[BLOG] 사이트맵
Posted at 2018. 3. 18. 22:27 | Posted in BLOG[jQuery] AJAX를 사용한 파일 업로드[jQuery] AJAX를 사용한 파일 업로드
Posted at 2018. 3. 18. 21:18 | Posted in JavaScript & jQuery/jQuery참고 : http://b1ix.net/213
■ AJAX를 사용하여 파일 업로드 하기
-. 웹 페이지를 제작하는 과정에서 파일을 업로드시 페이지를 새로고침 하지 않고 등록해야 하는 경우가 종종 발생한다.
그러한 경우에 AJAX를 사용하여 파일을 손쉽게 올려보도록 하자.
-. AJAX로 파일을 업로드 시에 업로드 된 파일 데이터를 넘겨주기 위해서는 아래 사항을 꼭 설정해야 한다.
① 폼(form)의 값이 AJAX를 통해서 넘어가기 때문에 from에 enctype="multipart/form-data"를 꼭 필요로 하지 않는다.
② FormData : 해당 폼의 모든 값들(file포함)을 해당 객체에 한번에 담아 보내기 위해 사용된다. (※ ie10부터 사용가능)
③ processData
-. 기본 값은 true이다.
-. 해당 값이 true일때는 data 값들이 쿼리스트링 형태인 key1=value1&key2=value2 형태로 전달된다.
-. 하지만 이렇게 하면 file 값들은 제대로 전달되지 못한다.
-. 그래서 해당 값을 false로 해주어 { key1 : 'value1', key2 : 'value2' } 형태로 전달해 주어야 file 값들이 제대로 전달된다.
④ contentTyp
-. 기본값은 'application/x-www-form-urlencoded'이다. 해당 기본 타입으로는 파일이 전송 안되기 때문에 false로 해주어야 한다.
# 소스코드01 - 파일을 업로드하는 소스코드
ajaxFormUpload.php |
<html> |
※ form 태그의 enctype="multipart/form" 사용하지 않아도 된다.
# 소스코드02 - 업로드하여 전송된 파일의 속성값을 출력하는 소스코드
ajaxFormReceive.php |
<?php |
# 출력결과01 - 업로드할 파일을 선택한뒤 파일을 전송한다.
# 출력결과02 - 사용하는 브라우저의 개발자 도구를 활용하여 출력된 결과를 확인해 보자.
위와같이 ajax를 사용하여 파일을 전송이 가능한 것을 확인 할 수 있다.
필자가 이렇게 AJAX로 파일을 전송하게 된 이유는.
주로 UI / UX 적인 디자인적 이슈가 많은 편인데.
그러한 이유는 아래 링크된 페이지의 포스트를 통해 확인할 수 있다.
#참고01 : input type='file' 없이 파일 전송하기
#참고02 : AJAX로 파일 업로드하고 썸네일 이미지 받아오기
'JavaScript & jQuery > jQuery' 카테고리의 다른 글
[jQuery] 따라다니는플로팅 배너 제작 (0) | 2018.04.23 |
---|---|
[jQuery] 선택 날짜를 태그로 생성하는 모듈 (0) | 2018.04.19 |
[jQuery] 테이블(TABLE) 행(ROW) 순서위치 이동시키기 (2) | 2018.03.22 |
[jQuery] 쇼핑몰 대표 이미지 상품박스 (0) | 2018.03.14 |
[jQuery] 이미지 슬라이드 제작 (0) | 2018.03.10 |