RadarURL

logo

  • 홈으로
  • 로그인
  • 회원가입
  • 화면축소
  • 화면확대
2021년 08월 04일
  • 포토누리
  • 제작의뢰
  • 포트폴리오
백반증 수술 sst전층피부이식술
로그인
2018.12.06 01:06

php7에서 엑셀출력

(*.200.114.161) 조회 수 364 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
<?php
 //url 로 직접 불러오는것을 방지
  if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])&& !strstr($_SERVER['HTTP_REFERER'],'out_excel.php')) exit;
  
 $servername = "localhost";
 $username = "user ID";
 $password = "DB_password";
 $table = "xe_documents";
 $database = "DB name";
 $module_srl = "module srl"; // 숫자 입력

$con = new mysqli($servername,$username,$password,$database);

/* check connection */
 if (mysqli_connect_errno()) {
     printf("Connect failed: %s\n", mysqli_connect_error());
     exit();
 }

$getcolumns = array("title"); //출력원하는 칼럼을 배열로 입력
  
 header("Content-type: application/vnd.ms-excel");
 header("Content-Disposition: attachment; filename=doc_".date('Ymd').".xls");
  

?>
  
 <!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

//제목 불러오기

$sql = "SHOW COLUMNS FROM $database.$table";
 $dbcolumns = mysqli_query($con,$sql); //xe_documents에서 칼럼값 불러오기

// fetch associative array
 while ($rowname = mysqli_fetch_row($dbcolumns)) {
     if( in_array($rowname[0], $getcolumns) ) echo "<th>".$rowname[0]."</th>";
 }

//확장변수의 타이틀은 값이므로      
 $result = mysqli_query($con, "select var_name from xe_document_extra_keys where module_srl = $module_srl");                 
 while( $data = mysqli_fetch_array($result) ){                         
     echo "<th>".htmlspecialchars($data[var_name])."</th>";
 } 
  
 echo"</tr>";

//데이터 불러오기
 $result = mysqli_query($con, "select * from $table where module_srl=$module_srl");
 while( $data = mysqli_fetch_assoc($result) ){
     echo"<tr>";
     foreach( $data as $key => $val ){
         if( in_array($key, $getcolumns) ){
             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=mysqli_query($con, "select eid from xe_document_extra_keys where module_srl = $module_srl");     
  while($extra_title=mysqli_fetch_array($query)){     
   echo"<td>";
   $egetFields = array("value","eid"); //확장변수 값을 불러와 eid값이 같은곳에 출력
   $extra_result = mysqli_query($con, "select * from xe_document_extra_vars where document_srl = $d_srl"); 
   while( $edata = mysqli_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>";
 }
  
 mysqli_close($con);

?>
 </table>
 </body>
 </html>

 

 출처 : https://www.xpressengine.com/index.php?mid=tip&search_target=title_content&search_keyword=%EC%97%91%EC%85%80&document_srl=23267854

 

php7에서 작동하는 소스 찾고 있었는데 올려주셨네요.


List of Articles
번호 제목 글쓴이 날짜 조회 수
402 회원 이름필드에 한글이나 영문이 있는지 체크 하는 쿼리문 똑띠 2019.06.17 282
401 위젯 - contentextended 위젯에서 임시글이 메인에 출력 될 경우 똑띠 2019.03.07 364
400 게시판에서 글 읽기 권한이 없을때 로그인 페이지 바로 이동 처리 똑띠 2019.02.26 327
399 게시판 첨부용량 제한 문제 처리하기 똑띠 2019.02.01 335
398 레이아웃에서 모듈 변수 출력 똑띠 2019.01.23 200
» php7에서 엑셀출력 똑띠 2018.12.06 364
396 게시판에서 로봇검색 제한 처리하기 똑띠 2018.11.30 151
395 XE 게시판에서 본문내용이 동일한 게시글 체크하는 쿼리문 1 똑띠 2018.09.17 326
394 쇼셜xe 셋팅 과정 1 file 똑띠 2018.03.19 902
393 확장변수 값 입력시 기본값 내용이 길때 사용자정의 화면이 가로로 늘어나 스크롤이 생기는 경우 똑띠 2018.03.05 705
392 외부프로그램과 XE 쿠키값 공유 똑띠 2018.01.30 384
391 ssl 설치 후 첨부파일 이미지 본문 노출시 안나오는 경우 처리 똑띠 2017.12.20 366
390 스케치북 댓글 노출 순서 바꿔주고자 할 경우 똑띠 2017.10.16 269
389 팝업창 모듈에서 좌측으로부터 공간 설정하는 부분 3자리->4자리로 변경 똑띠 2017.09.11 192
388 쪽지함에서 보낸이 부분을 닉네임 대신 이름이나 아이디로 변경하고자 할 경우 똑띠 2017.07.27 157
387 xenara 견적서 위젯에서 등록시 댓글허용, 비밀글체크, 알림체크 부분도 같이 저장시킬려면.. 똑띠 2017.06.28 237
386 레이아웃에서 모듈정보 확인 똑띠 2017.04.20 127
385 foreach문 똑띠 2017.04.11 120
384 닉네임 클릭시 회원정보 보기 및 기타 관련 팝업 div 안나오게 할려면 똑띠 2017.04.10 145
383 확장변수 전화번호 형식 검증 똑띠 2017.04.06 130
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 23 Next
/ 23
  • Designed by jobdahan.net