logo

  • 홈으로
  • 로그인
  • 회원가입
  • 화면축소
  • 화면확대
2019년 09월 23일
  • 포토누리
  • 제작의뢰
  • 포트폴리오
잡다한몽상백서 메인배너
로그인
2018.12.06 10:06

php7에서 엑셀출력

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

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
<?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
번호 제목 글쓴이 날짜 조회 수
404 도메인 변경시 기존 도메인을 변경된 도메인으로 변환처리 똑띠 2019.09.10 22
403 관리자 페이지 회원 목록 갯수 늘리기 1 똑띠 2019.07.15 106
402 회원 이름필드에 한글이나 영문이 있는지 체크 하는 쿼리문 똑띠 2019.06.17 86
401 위젯 - contentextended 위젯에서 임시글이 메인에 출력 될 경우 똑띠 2019.03.07 189
400 게시판에서 글 읽기 권한이 없을때 로그인 페이지 바로 이동 처리 똑띠 2019.02.26 161
399 게시판 첨부용량 제한 문제 처리하기 똑띠 2019.02.01 203
398 레이아웃에서 모듈 변수 출력 똑띠 2019.01.23 123
» php7에서 엑셀출력 똑띠 2018.12.06 227
396 게시판에서 로봇검색 제한 처리하기 똑띠 2018.11.30 88
395 XE 게시판에서 본문내용이 동일한 게시글 체크하는 쿼리문 1 똑띠 2018.09.17 222
394 쇼셜xe 셋팅 과정 1 file 똑띠 2018.03.19 742
393 확장변수 값 입력시 기본값 내용이 길때 사용자정의 화면이 가로로 늘어나 스크롤이 생기는 경우 똑띠 2018.03.05 479
392 외부프로그램과 XE 쿠키값 공유 똑띠 2018.01.30 270
391 ssl 설치 후 첨부파일 이미지 본문 노출시 안나오는 경우 처리 똑띠 2017.12.20 304
390 스케치북 댓글 노출 순서 바꿔주고자 할 경우 똑띠 2017.10.16 198
389 팝업창 모듈에서 좌측으로부터 공간 설정하는 부분 3자리->4자리로 변경 똑띠 2017.09.11 121
388 쪽지함에서 보낸이 부분을 닉네임 대신 이름이나 아이디로 변경하고자 할 경우 똑띠 2017.07.27 98
387 xenara 견적서 위젯에서 등록시 댓글허용, 비밀글체크, 알림체크 부분도 같이 저장시킬려면.. 똑띠 2017.06.28 189
386 레이아웃에서 모듈정보 확인 똑띠 2017.04.20 77
385 foreach문 똑띠 2017.04.11 71
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 21 Next ›
/ 21

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

  • Designed by jobdahan.net