본문 바로가기
코딩/php

[HTML/PHP] php를 활용하여 데이터를 엑셀 파일로 저장하는 방법

by 우월한하루 2024. 2. 27.
728x90
반응형

직접 db를 조작할 수 있는 개발자는 mysql이나 여러 방법을 이용해서 db데이터를 엑셀로 다운로드할 수 있지만,

페이지를 사용하는 사용자 입장에서는 엑셀로 다운받을 방법이 없습니다.

쇼핑몰 방문통계나, 회원관리 등등 해당 리스트를 엑셀로 다운로드하여서 쉽게 사용자들은 관리하고 싶어 하는데요.

이럴 때 사용자들을 위해 엑셀 다운로드 기능을 넣어주면 좋습니다.

 

728x90

 


 

엑셀 다운로드 페이지 생성하기

 

excel_down.php 파일을 생성합니다.

 

지금 생성하는 페이지에 접속하면 바로 엑셀 파일이 다운로드되는 페이지를 생성해 보도록 하겠습니다.

 

header( "Content-type: application/vnd.ms-excel; charset=ks_c_5601-1987" ); 
header( "Content-Disposition: attachment; filename= member_list".date("Ymd").".xls" );  
header( "Content-Description: PHP4 Generated Data" );

 

먼저 페이지의 최상단에 header 선언을 해줍니다.

 

처음 charset은 문자 인코딩방식입니다.

저는 "ks_c_5601-1987"로 설정했지만 같은 한국어 표기방식이라서, UTF-8로 설정해도 무방합니다.

 

두 번째 헤더는 파일명을 지정해 주는 것입니다.

저는 member_list 하고 뒤에 오늘 날짜를 붙여주었습니다.

 

 

엑셀파일로 다운로드할 테이블 생성하기

 

엑셀의 각 셀마다 들어갈 데이터를 html의 테이블 형식으로 생성해 줍니다.

 

html 테이블

 

 

대충 이런 느낌으로 테이블이 있고 아래 데이터들이 다 들어가 있는 느낌으로 만들어 주겠습니다.

 

<html>
<body>
   <?
   	$res = $db->query('불러올 데이터 DB 쿼리문 작성')
   ?>
    <table style="margin-top:15px;" class="table" width="100%"  cellpadding="0" cellspacing="0" border="1">
        <tr>
            <th>번호</th>
            <th>아이디(이름)</th>
            <th>코드</th>
            <th>다운로드 수</th>
            <th>인쇄 수</th>
            <th>작성일</th>
        </tr>
        <? for($i=0; $rs=$db->fetch_array($res); $i++) { ?>
            <tr>
                <td style="text-align: center;"><? echo $num; ?></td>
                <td style=mso-number-format:'\@'><?=$rs["userid"]?>(<?=$rs["name"]?>)</td>
                <td><?=$rs["c_code"]?></td>
                <td style="text-align: center;"><?=$rs["download"]?></td>
                <td style="text-align: center;"><?=$rs["print"]?></td>
                <td style="text-align: center;"><?=$rs["reg_date"]?></td>
            </tr>
        <?	$num++; 
        } ?>
    </table>
</body>
</html>

 

위와 같이 db에서 데이터를 가져오거나 직접 테이블을 만들어서 테이블 내용을 채워줍니다.

저는 for문을 활용하여 db의 데이터를 테이블 안에 넣어주었습니다.

 

해당 내용을 전부 작성하였고, db에서 데이터 불러오는데 이상이 없다면, 위의 페이지를 실행했을 시,

즉시 엑셀 파일 다운로드가 실행이 됩니다.

 

버튼 생성하기

 

html 테이블

 

위의 이미지 오른쪽 위의 엑셀 다운로드 버튼을 누르면 excel_down.php 페이지로 이동하여,

즉시 엑셀 다운로드가 가능하도록 하겠습니다.

 

<input type="button" value="엑셀다운로드" onclick="location.href='excel_down.php'">

 

위 코드와 같이 버튼을 만들고 onclick를 사용해서 버튼을 클릭 시 excel_down.php 페이지로 이동하게 했습니다.

728x90
반응형

댓글