직접 db를 조작할 수 있는 개발자는 mysql이나 여러 방법을 이용해서 db데이터를 엑셀로 다운로드할 수 있지만,
페이지를 사용하는 사용자 입장에서는 엑셀로 다운로드할 방법이 없습니다.
쇼핑몰 방문통계나, 회원관리 등등 해당 리스트를 엑셀로 다운로드하여서 쉽게 사용자들은 관리하고 싶어 하는데요.
이럴 때 사용자들을 위해 엑셀 다운로드 기능을 넣어주면 좋습니다.
엑셀 다운로드 페이지 생성하기
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>
<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에서 데이터 불러오는데 이상이 없다면, 위의 페이지를 실행했을 시,
즉시 엑셀 파일 다운로드가 실행이 됩니다.
버튼 생성하기
위의 이미지 오른쪽 위의 엑셀 다운로드 버튼을 누르면 excel_down.php 페이지로 이동하여,
즉시 엑셀 다운로드가 가능하도록 하겠습니다.
<input type="button" value="엑셀다운로드" onclick="location.href='excel_down.php'">
위 코드와 같이 버튼을 만들고 onclick를 사용해서 버튼을 클릭 시 excel_down.php 페이지로 이동하게 했습니다.
이제 엑셀 다운로드 버튼을 누르면 해당하는 페이지의 데이터를 엑셀 파일로 다운로드할 수 있게 되었습니다.
결론
php에서 엑셀 다운로드 기능을 사용하여,
복잡한 데이터를 보기 좋게 정리하고 문서화시킬 수 있습니다.
이러한 기능을 통해 사용자에게도 한눈에 데이터를 볼 수 있게 제공할 수 있으니,
이 포스팅에서 사용한 엑셀 다운로드기능을 잘 활용해 보시길 바랍니다.
'코딩' 카테고리의 다른 글
[jQuery] textarea 크기 자동으로 늘리는 방법 (22) | 2024.06.15 |
---|---|
[PHP] 두 날짜, 시간 차이 계산 (디데이까지 남은 시간 구하기) (44) | 2024.04.10 |
[PHP] 간단한 예제로 알아보는 날짜 함수 총정리 (137) | 2024.02.03 |
[jQuery] 마우스 드래그로 크기 조절 가능한 텍스트 박스 만들기 + 텍스트 박스 크기에 따라 글자 수 제한 (138) | 2024.01.29 |
[jQuery] 공공데이터 포털 api를 사용해서 사업자 등록 정보 확인하는 방법 (api 사용방법, 사업자번호 조회) (113) | 2024.01.18 |
댓글