회원목록 엑셀다운로드 > 그누보드5 팁자료실

그누보드5 팁자료실

회원목록 엑셀다운로드 정보

회원목록 엑셀다운로드

본문

<?php
include_once('./_common.php');

auth_check_menu($auth, $sub_menu, 'r');

// 엑셀 다운로드 함수
function array_to_excel($data, $filename){
    header('Content-Type: application/vnd.ms-excel; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '.xls"');
    header('Cache-Control: max-age=0');
    $out = fopen('php://output', 'w');
    fputs($out, "\xEF\xBB\xBF"); // UTF-8 with BOM
    fputcsv($out, array_keys($data[0]), "\t");
    foreach ($data as $row) {
        fputcsv($out, $row, "\t");
    }
    fclose($out);
}

$sql_common = " from {$g5['member_table']} ";

$sql_search = " where (1) ";
if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case 'mb_point' :
            $sql_search .= " ({$sfl} >= '{$stx}') ";
            break;
        case 'mb_level' :
            $sql_search .= " ({$sfl} = '{$stx}') ";
            break;
        case 'mb_tel' :
        case 'mb_hp' :
            $sql_search .= " ({$sfl} like '%{$stx}') ";
            break;
        default :
            $sql_search .= " ({$sfl} like '{$stx}%') ";
            break;
    }
    $sql_search .= " ) ";
}

if ($is_admin != 'super')
    $sql_search .= " and mb_level <= '{$member['mb_level']}' ";

if (!$sst) {
    $sst = "mb_datetime";
    $sod = "desc";
}

$sql_order = " order by {$sst} {$sod} ";

$sql = " select * {$sql_common} {$sql_search} {$sql_order} ";
$result = sql_query($sql);

// 테이블 출력을 위한 HTML 코드 추가
echo "<table border='1'>";
echo "<tr>";
echo "<th>번호</th>";
echo "<th>아이디</th>";
echo "<th>이름</th>";
echo "<th>닉네임</th>";
echo "<th>E-MAIL</th>";
echo "<th>전화번호</th>";
echo "<th>휴대폰번호</th>";
echo "<th>성별</th>";
echo "<th>생년월일</th>";
echo "<th>가입일</th>";
echo "<th>최종접속일</th>";
echo "<th>권한</th>";
echo "</tr>";

for ($i=0; $row=sql_fetch_array($result); $i++) {
    // 데이터 가공
    $mb_gender = '';
    if ($row['mb_gender'] == 'M') {
        $mb_gender = '남성';
    } else if ($row['mb_gender'] == 'F') {
        $mb_gender = '여성';
    }

    // 테이블 출력을 위한 HTML 코드 추가
    echo "<tr>";
    echo "<td>" . ($i+1) . "</td>";
    echo "<td>" . $row['mb_id'] . "</td>";
    echo "<td>" . $row['mb_name'] . "</td>";
    echo "<td>" . $row['mb_nick'] . "</td>";
    echo "<td>" . $row['mb_email'] . "</td>";
    echo "<td>" . $row['mb_tel'] . "</td>";
    echo "<td>" . $row['mb_hp'] . "</td>";
    echo "<td>" . $mb_gender . "</td>";
    echo "<td>" . $row['mb_birth'] . "</td>";
    echo "<td>" . $row['mb_datetime'] . "</td>";
    echo "<td>" . $row['mb_today_login'] . "</td>";
    echo "<td>" . $row['mb_level'] . "</td>";
    echo "</tr>";
}

// 테이블 출력을 위한 HTML 코드 추가
echo "</table>";

// 엑셀 다운로드
 array_to_excel($data, '회원리스트');
?>
 

추천
5

댓글 12개

유익한 소스 공개해 주셔서 고맙습니다.
엑셀 다운 받아서 파일 열어보니 아래와 같은 에러가 뜨는데 어떻게 하면 없앨 수 있을까요?
엑셀로 회원리스트는 잘 나옵니다. 마지막에 이런 에러가 3줄 뜨네요.

==================================================

Warning: array_keys() expects parameter 1 to be array, null given in /******/public_html/adm/member_list_excel.php on line 13

Warning: fputcsv() expects parameter 2 to be array, null given in /******/public_html/adm/member_list_excel.php on line 13

Warning: Invalid argument supplied for foreach() in /******/public_html/adm/member_list_excel.php on line 14




<?php
include_once('./_common.php');

auth_check_menu($auth, $sub_menu, 'r');

// 엑셀 다운로드 함수
function array_to_excel($data, $filename){
    header('Content-Type: application/vnd.ms-excel; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '.xls"');
    header('Cache-Control: max-age=0');
    $out = fopen('php://output', 'w');
    fputs($out, "\xEF\xBB\xBF"); // UTF-8 with BOM
    fputcsv($out, array_keys($data[0]), "\t");
    foreach ($data as $row) {
        fputcsv($out, $row, "\t");
    }
    fclose($out);
}

$sql_common = " from {$g5['member_table']} ";

$sql_search = " where (1) ";
if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case 'mb_point' :
            $sql_search .= " ({$sfl} >= '{$stx}') ";
            break;
        case 'mb_level' :
            $sql_search .= " ({$sfl} = '{$stx}') ";
            break;
        case 'mb_tel' :
        case 'mb_hp' :
            $sql_search .= " ({$sfl} like '%{$stx}') ";
            break;
        default :
            $sql_search .= " ({$sfl} like '{$stx}%') ";
            break;
    }
    $sql_search .= " ) ";
}

if ($is_admin != 'super')
    $sql_search .= " and mb_level <= '{$member['mb_level']}' ";

if (!$sst) {
    $sst = "mb_datetime";
    $sod = "desc";
}

$sql_order = " order by {$sst} {$sod} ";

$sql = " select * {$sql_common} {$sql_search} {$sql_order} ";
$result = sql_query($sql);

$data = array(); // Initialize the data array

while ($row = sql_fetch_array($result)) {
    // 데이터 가공
    $mb_gender = '';
    if ($row['mb_gender'] == 'M') {
        $mb_gender = '남성';
    } else if ($row['mb_gender'] == 'F') {
        $mb_gender = '여성';
    }

    $data[] = array(
        '번호' => ($i + 1),
        '아이디' => $row['mb_id'],
        '이름' => $row['mb_name'],
        '닉네임' => $row['mb_nick'],
        'E-MAIL' => $row['mb_email'],
        '전화번호' => $row['mb_tel'],
        '휴대폰번호' => $row['mb_hp'],
        '성별' => $mb_gender,
        '생년월일' => $row['mb_birth'],
        '가입일' => $row['mb_datetime'],
        '최종접속일' => $row['mb_today_login'],
        '권한' => $row['mb_level']
    );
}

// 테이블 출력을 위한 HTML 코드 추가
echo "<table border='1'>";
echo "<tr>";
echo "<th>번호</th>";
echo "<th>아이디</th>";
echo "<th>이름</th>";
echo "<th>닉네임</th>";
echo "<th>E-MAIL</th>";
echo "<th>전화번호</th>";
echo "<th>휴대폰번호</th>";
echo "<th>성별</th>";
echo "<th>생년월일</th>";
echo "<th>가입일</th>";
echo "<th>최종접속일</th>";
echo "<th>권한</th>";
echo "</tr>";

for ($i = 0; $i < count($data); $i++) {
    // 테이블 출력을 위한 HTML 코드 추가
    echo "<tr>";
    echo "<td>" . ($i + 1) . "</td>";
    echo "<td>" . $data[$i]['아이디'] . "</td>";
    echo "<td>" . $data[$i]['이름'] . "</td>";
    echo "<td>" . $data[$i]['닉네임'] . "</td>";
    echo "<td>" . $data[$i]['E-MAIL'] . "</td>";
    echo "<td>" . $data[$i]['전화번호'] . "</td>";
    echo "<td>" . $data[$i]['휴대폰번호'] . "</td>";
    echo "<td>" . $data[$i]['성별'] . "</td>";
    echo "<td>" . $data[$i]['생년월일'] . "</td>";
    echo "<td>" . $data[$i]['가입일'] . "</td>";
    echo "<td>" . $data[$i]['최종접속일'] . "</td>";
    echo "<td>" . $data[$i]['권한'] . "</td>";
    echo "</tr>";
}

// 테이블 출력을 위한 HTML 코드 추가
echo "</table>";

// 엑셀 다운로드
array_to_excel($data, '회원리스트');
?>

이렇게 해보세용
답변 고맙습니다.
알려주신 소스로 적용해보니 에러메세지는 안뜨는데 member 테이블 내용이 한셀에 모두 추가로 나옵니다.

전체 2,427 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT