채택완료

basic게시판 엑셀로 저장하기

2017-12-29 (금) 15:55:46 2,979

basic 스킨으로 게시판 하나 만들고 

여분필드 wr_1,wr_2,wr_3만 엑셀파일로 저장하는 연습중인데

어제 고수님들이 알려주신 phpexcel을 찾아보고 아래와 같이 따라만들고

루트에 /Classes/폴더 그리고 아래 파일 만들어 올려놓고 실행해봤는데

잘 안되서 고수님들 함 봐주십사 부탁드립니다. 새해복많이 받으세요.

Copy
<?php
if (!defined('_GNUBOARD_')) exit;
define('G5_MYSQL_HOST', 'localhost');
define('G5_MYSQL_USER', 'root');
define('G5_MYSQL_PASSWORD', '*********');
define('G5_MYSQL_DB', '*********');
define('G5_MYSQL_SET_MODE', false);

define('G5_TABLE_PREFIX', 'g5_');
// DB 접속 부분은 생략

$sql = " SELECT * FROM g5_write_notice order by order asc ";
$result = mysql_query($sql);
$cnt = @mysql_num_rows($result);
if (!$cnt) {
    alert("출력할 내역이 없습니다.");
}

/** PHPExcel */
require_once("/Classes/PHPExcel.php");
/* PHPExcel.php 파일의 경로를 정확하게 지정해준다. */

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set properties
// Excel 문서 속성을 지정해주는 부분이다. 적당히 수정하면 된다.
$objPHPExcel->getProperties()->setCreator("작성자")
                             ->setLastModifiedBy("최종수정자")
                             ->setTitle("회원리스트")
                             ->setSubject("회원리스트")
                             ->setDescription("회원리스트")
                             ->setKeywords("회원리스트")
                             ->setCategory("License");


// Add some data
// Excel 파일의 각 셀의 타이틀을 정해준다.
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue("A1", "지역")
            ->setCellValue("B1", "상호")
            ->setCellValue("C1", "대표자");

// for 문을 이용해 DB에서 가져온 데이터를 순차적으로 입력한다.
// 변수 i의 값은 2부터 시작하도록 해야한다.
for ($i=2; $row=mysql_fetch_array($result); $i++)
{    
    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue("A$i", "$row[wr_1]")
                ->setCellValue("B$i", "$row[wr_2]")
                ->setCellValue("C$i", "$row[wr_3]");
}

// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle("응시리스트");

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);

// 파일의 저장형식이 utf-8일 경우 한글파일 이름은 깨지므로 euc-kr로 변환해준다.
$filename = iconv("UTF-8", "EUC-KR", "자격증시험응시리스트");

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
?>

참고내용:https://ncube.net/7254

|

답변 1개 / 댓글 3개

채택된 답변
+20 포인트

잘안된다는게 어떤게 안된다는 것인지 명확히 말해주세요.

 $objPHPExcel->setActiveSheetIndex(0)                

 ->setCellValue("A".$i, $row[wr_1])                 

->setCellValue("B".$i, $row[wr_2])                 

->setCellValue("C".$i, $row[wr_3]);

일단 이렇게 바꾸고 다시 한번 실행해주세요

답변에 대한 댓글 3개

2017-12-29 (금) 17:37:29
감사합니다.
일단 500 애러가 납니다. 계속 시도중인데 될것 같은 느낌만. ㅋㅋㅋ
excel 부분은 코드가 잘못되더라도 500 에러가 나지는 않습니다.
엑셀부분 코드 다 지우고 위에서부터 하나씩 점검해보세요.
$cnt = <a href="//sir.kr/main/member/?mb_id=goodchurch" class="mention_user_info" target="_blank">@mysql</a>_num_rows($result);
이부분이 일단 이상한거 같은데요..
2017-12-29 (금) 17:50:30
/LovelyCaT 넵 감사합니다. ^^

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