웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
게시판 글 엑셀로 출력하기(확장변수 포함)
2014.07.17 11:30
<?php //url 로 직접 불러오는것을 방지 if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])&& !strstr($_SERVER['HTTP_REFERER'],'out_excel.php')) exit; $info = array( "host" => "localhost", "user" => "db명", "pass" => "db비번", "db" => "xe테이블명", "table" => "xe_documents", "module_srl" => "출력할게시판slr", ); $getFields = array("title","regdate","content"); //출력원하는 칼럼을 배열로 입력 header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=doc_".date('Ymd').".xls"); $con = mysql_connect($info[host], $info[user], $info[pass]) || die(mysql_error()); mysql_query("set names utf8"); $con_db = mysql_select_db($info[db]) || die(mysql_error()); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="EN" dir="ltr" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=Content-Type content=text/html; charset="utf-8"> </head> <body> <table border=1> <tr align=center> <?php //제목 불러오기 $fields = mysql_list_fields("$info[db]", "$info[table]"); $columns = mysql_num_fields($fields); for( $i=0 ; $i<$columns ; $i++ ) { $field[$i]=mysql_field_name($fields, $i); if( in_array($field[$i], $getFields) ) echo "<th>".$field[$i]."</th>"; } //확장변수의 타이틀은 값이므로 $result = mysql_query("select var_name from xe_document_extra_keys where module_srl = $info[module_srl]"); while( $data = mysql_fetch_array($result) ) { echo "<th>".htmlspecialchars($data[var_name])."</th>"; } echo"</tr>"; //데이터 불러오기 $result = mysql_query("select * from $info[table] where module_srl = $info[module_srl]"); while( $data = mysql_fetch_assoc($result) ) { echo"<tr>"; foreach( $data as $key => $val ) { if( in_array($key, $getFields) ) { if ($key == 'regdate') { echo "<td style='mso-number-format:\"0_ \";' >".htmlspecialchars($val)."</td>"; }elseif ($key == 'content'){ //내용 출력할경우 태그가 그대로 출력됨 //echo "<td>".$val."</td>"; //셀이 두칸이상으로 늘어남 echo "<td >".htmlspecialchars(strip_tags(str_replace(" ","",$val)))."</td>"; }else { echo "<td>".htmlspecialchars($val)."</td>"; } } if ($key == 'document_srl'){ //확장변수 불러올때 사용 $d_srl=$val; } } //확장변수 출력 //////////////////////////////////////////// //eid리스트를 불러온다 $query=mysql_query("select eid from xe_document_extra_keys where module_srl = $info[module_srl]"); while($extra_title=mysql_fetch_array($query)) { echo"<td>"; $egetFields = array("value","eid"); //확장변수 값을 불러와 eid값이 같은곳에 출력 $extra_result = mysql_query("select * from xe_document_extra_vars where document_srl = $d_srl"); while( $edata = mysql_fetch_assoc($extra_result) ) { $extra_str=""; foreach( $edata as $key => $val ){ if( in_array($key, $egetFields) ){ $extra_str = $val.",".$extra_str; } } $extra_arr=explode(",",$extra_str); if ($extra_title[eid]==$extra_arr[0]){ //전화번호값은 "|@|" 를 "-" 로 변경 if($extra_title[eid]=="mb_phone_Number"){ echo str_replace("|@|","-",htmlspecialchars($extra_arr[1])); //기타 배열값들은 ',' 로 변경 }elseif($extra_title[eid]=="mb_incomplete"||$extra_title[eid]=="mb_cs"){ echo str_replace("|@|",",",htmlspecialchars($extra_arr[1])); }else{ echo htmlspecialchars($extra_arr[1]); } } } echo"</td>"; //eid값이 없으면 빈칸입력 } ///////////////////////////////////////////////////////////////////// echo"</tr>"; } ?> </table> </body> </html>
확장변수 출력부분만 끼워넣었습니다.
url로 실행안되고 사이트내에서 링크로 불러오게 했고요
저 같은경우는 리스트 아래 검색버튼옆에 버튼방식으로 추가해서 사용중입니다.(루트에 위 php 파일이 있고)
<a cond="$grant->manager" class="btn" href="out_excel.php" title="엑셀 출력"> 엑셀출력</a>
전화번호출력과 기타배열들 출력부분은 해당 확장변수 eid값으로 변경해주시면됩니다.
댓글 15
제목 | 글쓴이 | 날짜 |
---|---|---|
MRTG에서 네트워크및 CPU, 메모리점유율을 기록하기 | ひりゅう. | 2014.07.05 |
XE 알림센터 Lite 사용시에 쪽지나 호출에 대해서만 알림음을 적용하기 [17] | SeungXE | 2014.07.06 |
외부 페이지에서 회원 extra_vars 변수 가져오기 [1] | Happyphp | 2014.07.09 |
편리한 안드로이드 크로스 브라우징 테스트 Tip - 안드로이드 가상화 | AJKJ | 2014.07.09 |
lang.xml 파일 다이어트 자동화 [5] | 산하2 | 2014.07.09 |
SocialXE 관련 사용팁 적용 수정 파일 [3] | 휘즈 | 2014.07.13 |
댓글등록에 단축키 사용하기 | ひりゅう. | 2014.07.15 |
모바일(또는 textarea형)에서 댓글 수정시 줄바꿈 유지되도록 수정 [2] | sejin7940 | 2014.07.17 |
게시판 글 엑셀로 출력하기(확장변수 포함) [15] | 한이73 | 2014.07.17 |
회원 비밀번호 수정시 자동으로 로그아웃 되게 하는 방법 [4] | sejin7940 | 2014.07.18 |
Windows10 에서 IIS + mysql + PHP 설치 [10] | HSJI | 2014.07.21 |
간단하게 외부 SMTP 로 인증메일 보내기. [1] | AJKJ | 2014.07.22 |
php로 간단하게 신규쪽지(읽지않은쪽지) 표시해주기 [2] | 졸라맨 | 2014.07.23 |
빈공간 더블 클릭시 상하 이동 스크립트 | socialskyo | 2014.07.23 |
[초보팁] .htaccess 파일을 이용하여 여러가지 주소 한 주소로 리다이렉트 하기 ( 주소 통합 ) [5] | 태풍_님 | 2014.07.23 |
아이디 첫글자에 숫자 허용 [2] | wooildang | 2014.07.24 |
xe module, sample 생성기 [9] | 천재ㅐ재 | 2014.07.24 |
CURL 등 리퀘스트가 느리다고 생각될때 [1] | 銀童 | 2014.07.25 |
게시판 데이터 일괄 삽입 방법 [1] | Happyphp | 2014.07.26 |
/XE/떼어 내기 방법... | 꿈섬 | 2014.07.27 |