테스트 사이트 - 개발 중인 베타 버전입니다

엑셀로 출력하는 방법

PHP초보탈출희망 10년 전 조회 4,089

</p><p><?php</p><p>$sub_menu = "400100";</p><p>include_once('./_common.php');</p><p>include (G5_SKIN_PATH.'/multi_category/lib.php');</p><p> </p><p>auth_check($auth[$sub_menu], 'r');</p><p> </p><p>$g5['title'] = '전체 접수내역';</p><p>include_once('./handling.sub.php');</p><p> </p><p>$colspan = 5;</p><p> </p><p>$max = 0;</p><p>$sum_count = 0;</p><p>$sql = " select * from {$g5['write_aaaa_table']}</p><p>            where wr_3 between '{$fr_date}' and '{$to_date}' order by wr_id desc";</p><p>$result = sql_query($sql);</p><p> </p><p>?></p><p> </p><p><div class="tbl_head01 tbl_wrap"></p><p> </p><p>    <table></p><p>    <caption><?php echo $g5['title']; ?> 목록</caption></p><p>    <thead></p><p>    <tr></p><p>        <th scope="col">분류</th></p><p>        <th scope="col">제목</th></p><p>        <th scope="col">접수경로</th></p><p>        <th scope="col">접수일</th></p><p>        <th scope="col">접수시간</th></p><p>        <th scope="col">접수자</th></p><p>        <th scope="col">연락처</th></p><p>        <th scope="col">휴대전화</th></p><p>        <th scope="col">지역</th></p><p>        <th scope="col">상세주소</th></p><p>        <th scope="col">내용</th></p><p>        <th scope="col">기타사항</th></p><p>        <th scope="col">처리상태</th></p><p>        <th scope="col">처리완료일</th></p><p>        <th scope="col">처리불가 사유</th></p><p> </p><p>    </tr></p><p>    </thead></p><p> </p><p>    <tbody></p><p>      <?php</p><p>      $h1 = 0;</p><p>      $h2 = 0;</p><p>      $h3 = 0;</p><p>      $h4 = 0;</p><p>      $no = 0;</p><p> </p><p>      for ($i=0; $row=sql_fetch_array($result); $i++) {</p><p>          $no = $i+1;</p><p>          $ca_name = $row['ca_name'];</p><p>            include('handle_multi.php');</p><p>          $wr_1 = $row['wr_1'];</p><p>          $wr_2 = $row['wr_2'];</p><p>          $wr_3 = $row['wr_3'];</p><p>          $wr_4 = $row['wr_4'];</p><p>          $wr_5 = $row['wr_5'];</p><p>          $wr_6 = $row['wr_6'];</p><p>          $wr_7 = $row['wr_7'];</p><p>          $wr_8 = $row['wr_8'];</p><p>          $wr_9 = $row['wr_9'];</p><p>          $wr_10 = $row['wr_10'];</p><p>          $wr_11 = $row['wr_11'];</p><p>          $wr_12 = $row['wr_12'];</p><p>          $wr_13 = $row['wr_13'];</p><p>          $wr_subject = $row['wr_subject'];</p><p>          $wr_content = $row['wr_content'];</p><p>          $bg = 'bg'.($i%2);</p><p> </p><p>          if($wr_1 == '처리중'){</p><p>            $h1 = $h1 + 1;</p><p>          }</p><p>          else if($wr_1 == '처리완료'){</p><p>            $h2 = $h2 + 1;</p><p>          }</p><p>          else if($wr_1 == '처리불가'){</p><p>            $h3 = $h3 + 1;</p><p>          }</p><p>          else {</p><p>            $h4 = $h4 + 1;</p><p>          }</p><p>    ?></p><p> </p><p>    <tr class="<?php echo $bg; ?>"></p><p>        <td><?php echo $ca_name ?></td></p><p>        <td><?php echo $wr_subject ?></td></p><p>        <td><?php echo $wr_2 ?></td></p><p>        <td><?php echo $wr_3 ?></td></p><p>        <td><?php echo $wr_4 ?></td></p><p>        <td><?php echo $wr_5 ?></td></p><p>        <td><?php echo $wr_6 ?></td></p><p>        <td><?php echo $wr_7 ?></td></p><p>        <td><?php echo $wr_8 ?></td></p><p>        <td><?php echo $wr_9 ?></td></p><p>        <td><?php echo $wr_content ?></td></p><p>        <td><?php echo $wr_10 ?></td></p><p>        <td><?php echo $wr_1 ?></td></p><p>        <td><?php echo $wr_12 ?></td></p><p>        <td><?php echo $wr_13 ?></td></p><p>    </tr></p><p> </p><p>    <?php</p><p>    }</p><p>    $sum_count = $no;</p><p>    if ($i == 0)</p><p>        echo '<tr><td colspan="15" class="empty_table">자료가 없습니다.</td></tr>';</p><p> </p><p>    ?></p><p>    </tbody></p><p>    <tfoot></p><p>    <tr></p><p>        <td>합계</td></p><p>        <td><strong><?php echo $sum_count ?></strong></td></p><p>        <td colspan="13"> 처리중 : <?php echo $h1 ?> | 처리완료 : <?php echo $h2 ?> | 처리불가 : <?php echo $h3 ?> | 대기 : <?php echo $h4 ?></td></p><p>    </tr></p><p>    </tfoot></p><p>    </table></p><p></div></p><p> </p><p><?php</p><p>include_once('./admin.tail.php');</p><p>?></p><div>

그누보드 에서 관리자에서 날짜별 조회하여 게시글을 출력하는 페이지를 만들어 보았습니다.
이렇게 출력된 게시글을 엑셀로 출력이라는 버튼을 만들어서 엑셀로 출력하고 싶은데
어떻게 하는지 알고싶습니다.
댓글을 작성하려면 로그인이 필요합니다.

답변 1개

10년 전

엑셀로 출력시 디자인 요소인 header, footer가 있으면 같이 출력이 되기 때문에 body 부분에는 table만 존재해야 됩니다.

 

그리고 엑셀로 출력할때는 header에 어플리케이션 타입을 엑셀로 정의하시면 됩니다.

 

변수를 하나 정의하셔서 엑셀이 아닐경우에만

 

$sub_menu = "400100";

include_once('./_common.php');

include (G5_SKIN_PATH.'/multi_category/lib.php');

auth_check($auth[$sub_menu], 'r');

$g5['title'] = '전체 접수내역';

include_once('./handling.sub.php');

 

이부분과

 

include_once('./admin.tail.php');

 

이 부분을 노출하시고

 

엑셀일 경우에는 소스 앞부분에

 

header("Pragma:");

header("Cache-Control:");

header("Content-Type: application/vnd.ms-excel");

header("Content-Disposition: attachment; filename=$file_name); // 저장을 원하는 파일제목

header("Content-Description: PHP5 Generated Data"); // description

를 노출하시면 됩니다.

 

문서 컨텐트 타입이 엑셀이므로 엑셀 파일로 다운이 됩니다.

 

 


로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

P
PHP초보탈출희망
10년 전
말씀하신데로 해 보았는데 500에러가 뜨네요...ㅠ
노출을 하지말라는 소스중에
include_once('./handling.sub.php');
이것은 날짜 선택하는 페이지인데
이것도 노출하면 안되는건가요?
그리고 제가 날짜를 선택해서 조회하면
현재 출력된 내용을 엑셀로 저장하고 싶은데... 엑셀로 저장이라는 버튼을 만들어서
이 방법은 없을까요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인