메뉴 건너뛰기

프로그램언어

조회 수 17194 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
가끔 홈페이지나 쇼핑몰을 개발하다 보면 DB에 저장된 데이트를 EXCEL(이하 엑셀)파일로 다운로드 해야할 경우가
생긴다. 이전까지는 html table 태그를 이용해서 엑셀 파일을 생성하는 방법을 사용했지만 Excel 2007에서는 이럴
경우 파일 형식이 받지 않는다며 경고창을 띠운다. 잘 모르는 사람들은 파일 깨졌다고 오해를 하기도 하는데.. 그래서
이번에 작업을 하면서 정상적인 엑셀 파일을 만들 수 있는 방법이 없을까 검색하다 PHPExcel이라는 멋진 것을 찾아
작업을 완료했다. 어제까지만 해도 귀찮아서 table 태그를 사용했는데.. 오늘은 왠지 이걸 한번 해보고 싶었다는.. ^^;


phpexcel_logo.jpg


다운로드 : http://phpexcel.codeplex.com/



한가지 주의할 것은 아래 요구사항을 만족해야만 PHPExcel를 사용할 수 있다.

Requirements
    * PHP version 5.2.0 or higher
    * PHP extension php_zip enabled *)
    * PHP extension php_xml enabled
    * PHP extension php_gd2 enabled (if not compiled in)



우선 PHPExcel 사이틀 방문해서 Class 파일을 다운로드 한다. 홈페이지 오른쪽 상단부분에 DOWNLOAD 버튼이
존재한다. 설치법은 다운로드 받은 파일의 압축을 푼 후 Classes 폴더를 계정의 적당한 위치에 업로드 하는 것이다.
Classes 폴더를 업로드 하는 것으로 PHPExcel의 사용을 위한 준비는 끝났다. 이제 엑셀파일을 만드는 페이지를
만들면 된다. 아래는 간단한 PHP코드로 이것을 적당히 수정해서 사용하면 될 것이다. 코드는 많이 허접하다는.. ^^;

<?php
// DB 접속 부분은 생략

$sql = " SELECT * FROM license_table order by order asc ";
$result = mysql_query($sql);
$cnt = @mysql_num_rows($result);
if (!$cnt) {
    alert("출력할 내역이 없습니다.");
}

/** PHPExcel */
require_once("../Classes/PHPExcel.php");
/* PHPExcel.php 파일의 경로를 정확하게 지정해준다. */

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set properties
// Excel 문서 속성을 지정해주는 부분이다. 적당히 수정하면 된다.
$objPHPExcel->getProperties()->setCreator("작성자")
                             ->setLastModifiedBy("최종수정자")
                             ->setTitle("자격증시험응시리스트")
                             ->setSubject("자격증시험응시리스트")
                             ->setDescription("자격증시험응시리스트")
                             ->setKeywords("자격증 시험")
                             ->setCategory("License");


// Add some data
// Excel 파일의 각 셀의 타이틀을 정해준다.
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue("A1", "차수")
            ->setCellValue("B1", "응시자")
            ->setCellValue("C1", "수험번호")
            ->setCellValue("D1", "상호")
            ->setCellValue("E1", "전화번호")
            ->setCellValue("F1", "휴대폰번호")
            ->setCellValue("G1", "사업장주소")
            ->setCellValue("H1", "시험장소")
            ->setCellValue("I1", "응시료")
            ->setCellValue("J1", "상태")
            ->setCellValue("K1", "자격증번호")
            ->setCellValue("L1", "발급일");

// for 문을 이용해 DB에서 가져온 데이터를 순차적으로 입력한다.
// 변수 i의 값은 2부터 시작하도록 해야한다.
for ($i=2; $row=mysql_fetch_array($result); $i++)
{   
    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue("A$i", "$row[order]")
                ->setCellValue("B$i", "$row[name]")
                ->setCellValue("C$i", "$row[slate_no]")
                ->setCellValue("D$i", "$row[biz_name]")
                ->setCellValue("E$i", "$row[tel]")
                ->setCellValue("F$i", "$row[hp]")
                ->setCellValue("G$i", "$row[address]")
                ->setCellValue("H$i", "$row[site]")
                ->setCellValue("I$i", "$row[invoice]")
                ->setCellValue("J$i", "$row[status]")
                ->setCellValue("K$i", "$row[license]")
                ->setCellValue("L$i", "$row[license_date]");
}

// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle("응시리스트");

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);

// 파일의 저장형식이 utf-8일 경우 한글파일 이름은 깨지므로 euc-kr로 변환해준다.
$filename = iconv("UTF-8", "EUC-KR", "자격증시험응시리스트");

// Redirect output to a client’s web browser (Excel5)
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');
exit;
?>


이외에도 PHPExcel의 다양한 기능은 압축 파일에 포함된 예제 php 파일을 통해서 확인할 수 있다.


  1. No Image 06Mar
    by
    2017/03/06 Views 15678 

    php 문자열관련 함수

  2. No Image 06Mar
    by
    2017/03/06 Views 15867 

    php로 db 컨트롤 1

  3. PHP에서 Excel 파일을 만들 수 있는 PHPExcel

  4. No Image 06Mar
    by
    2017/03/06 Views 16716 

    PHP의 유동변수!? - $a1 ~ $a2 같은 형식의 변수를 반복문 돌릴때...

  5. No Image 06Mar
    by
    2017/03/06 Views 18394 

    PHP EXCEL export시 시트 이름 지정하여 여러 시트에 데이터 쓰기

  6. No Image 06Mar
    by
    2017/03/06 Views 17147 

    PHP 만년달력 소스

  7. No Image 06Mar
    by
    2017/03/06 Views 17894 

    text파일에 한줄씩 내용추가하기

  8. No Image 06Mar
    by
    2017/03/06 Views 17198 

    지엠 웹에디터 v1.1 (저작권표시없음)|

  9. No Image 06Mar
    by
    2017/03/06 Views 21134 

    Ajax로 구연한 실시간 서버시간출력

  10. ajax refresh 시키기(자동리플래쉬) with php

  11. No Image 06Mar
    by
    2017/03/06 Views 18665 

    오류 메시지 출력(alert) 및 페이지 이동(refresh) 관련

  12. No Image 06Mar
    by
    2017/03/06 Views 15585 

    메일주소의 골뱅이를 그림처리하기

  13. No Image 06Mar
    by
    2017/03/06 Views 18405 

    PHP로 엑셀 자료 MySQL에 넣기

  14. CodeIgniter에서 PHPExcel 사용하기

  15. No Image 06Mar
    by
    2017/03/06 Views 21795 

    PHPExcel 클래스를 이용해 Excel 2007~2010 의 xlsx 파일 읽기 (100만 행 까지)

  16. phpexcel을 이용한 PHP로 엑셀파일 읽기와 생성

  17. No Image 19Feb
    by
    2017/02/19 Views 19786 

    파일업로드

  18. No Image 19Feb
    by
    2017/02/19 Views 18540 

    PHP에서 데이터를 엑셀(Excel)로 저장

  19. No Image 19Feb
    by
    2017/02/19 Views 36004 

    [PHP] 게시판 글쓰기와 이미지 파일 DB 저장 및 불러오기 예제

  20. No Image 23Dec
    by
    2016/12/23 Views 20856 

    array_slice 배열의 일부를 추출

Board Pagination Prev 1 ... 6 7 8 9 10 11 12 13 14 15 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved