관리자모드에서 회원 엑셀 다운받을때

관리자모드에서 회원 엑셀 다운받을때

QA

관리자모드에서 회원 엑셀 다운받을때

본문

수고하십니다.

 

관리자모드에서 회원들을 엑셀로 다운로드 받을 수 있는데요.

 

여기서

이메일수신여부와 문자 수신여부를 추가해주고 싶습니다.

 

어디서 추가를 해줘야 할까요?

 

조언 좀 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 4

기본 그누보드에는 회원정보를 엑셀로 다운받는 메뉴나 기능이 없습니다.

커스텀된 사이트인것 같구요

엑셀을 다운받는 .php 파일에서 해당 이메일 필드를 추가해야합니다.

기본 모드가 아니라서 커스텀을 하신거 같은데 회원정보 수정하는 페이지에서 해당 정보를 확인하는 방법을 확인하시고 엑셀쪽에도 동일하게 해주시면 될거 같습니다.


<?php
$sub_menu = '400800';
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
function conv_telno($t)
{
    // 숫자만 있고 0으로 시작하는 전화번호
    if (!preg_match("/[^0-9]/", $t) && preg_match("/^0/", $t))  {
        if (preg_match("/^01/", $t)) {
            $t = preg_replace("/([0-9]{3})(.*)([0-9]{4})/", "\\1-\\2-\\3", $t);
        } else if (preg_match("/^02/", $t)) {
            $t = preg_replace("/([0-9]{2})(.*)([0-9]{4})/", "\\1-\\2-\\3", $t);
        } else {
            $t = preg_replace("/([0-9]{3})(.*)([0-9]{4})/", "\\1-\\2-\\3", $t);
        }
    }
    return $t;
}
// 1.04.01
// MS엑셀 CSV 데이터로 다운로드 받음
if ($csv == 'csv')
{
    $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";
    }
    if($sst == "mb_email_certify") {
        $sql_order = " order by {$sst} {$sod} , mb_datetime asc";
    } else {
        $sql_order = " order by {$sst} {$sod} ";
    }
    $sql = " select * {$sql_common} {$sql_search} {$sql_order}";
    $result = sql_query($sql);
    $cnt = _num_rows($result);
    if (!$cnt)
        alert("출력할 내역이 없습니다.");
    //header('Content-Type: text/x-csv');
    header("Content-charset=utf-8");
    header('Content-Type: doesn/matter');
    header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
    header('Content-Disposition: attachment; filename="memberlist-' . date("ymd", time()) . '.csv"');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    echo iconv('utf-8', 'euc-kr', "번호,아이디,이름(실명),닉네임,회원 권한,우편번호,주소,E-mail,휴대폰번호,전화번호,팩스번호,근무처,전문의번호,의사면허번호,주민번호,성별,생년월일,승인,가입일,이메일승인,SMS승인,메모\n");
    $save_it_id = ''; $csv_num = 0;
    for ($i=0; $row=sql_fetch_array($result); $i++)
    {
        $csv_num++;
        $row = array_map('iconv_euckr', $row);
        $row['mb_level'] = $MEMBER_LEVEL[$row['mb_level']];
        $row['mb_sex'] = ($row['mb_sex'])?'男':'女';
        $row['mb_approval'] = ($row['mb_approval'])?'승인':'미승인';
        echo '"'.$csv_num.'"'.',';
        echo '"'.$row['mb_id'].'"'.',';
        echo '"'.$row['mb_name'].'"'.',';
        echo '"'.$row['mb_nick'].'"'.',';
        echo '"'.iconv_euckr($row['mb_level']).'"'.',';
        echo '"\''.$row['mb_zip1'].$row['mb_zip2'].'"\''.',';
        echo '"'.print_address($row['mb_addr1'], $row['mb_addr2'], $row['mb_addr3'], $row['mb_addr_jibeon']).'"'.',';
        echo '"'.$row['mb_email'].'"'.',';
        echo '"'.conv_telno($row['mb_hp']) . '"'.',';
        echo '"'.conv_telno($row['mb_tel']) . '"'.',';
        echo '"'.conv_telno($row['mb_fax']) . '"'.',';
        echo '"'.$row['mb_officename'].'"'.',';
        echo '"'.$row['mb_speciallicense'].'"'.',';
        echo '"'.$row['mb_doclicense'].'"'.',';
        echo '"'.$row['mb_jumin'].'"'.',';
        echo '"'.iconv_euckr($row['mb_sex']).'"'.',';
        echo '"'.$row['mb_birth'].'"'.',';
        echo '"'.iconv_euckr($row['mb_approval']).'"'.',';
        echo '"'.$row['mb_datetime'].'"'.',';
        echo '"'.$row['mb_mailling'].'"'.',';
        echo '"'.$row['mb_sms_yes'].'"'.',';
        echo '"'.preg_replace("/\"/", """, $row['mb_memo']).'"';
        echo "\n";
    }
    if ($i == 0)
        echo '자료가 없습니다.'.PHP_EOL;
    exit;
}

// MS엑셀 XLS 데이터로 다운로드 받음
if ($csv == 'xls')
{
    $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";
    }
    if($sst == "mb_email_certify") {
        $sql_order = " order by {$sst} {$sod} , mb_datetime asc";
    } else {
        $sql_order = " order by {$sst} {$sod} ";
    }
    $sql = " select * {$sql_common} {$sql_search} {$sql_order}";
    $result = sql_query($sql);
    $cnt = _num_rows($result);
    if (!$cnt)
        alert("출력할 내역이 없습니다.");

    /*================================================================================
    php_writeexcel http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/
    =================================================================================*/
    include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_workbook.inc.php');
    include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_worksheet.inc.php');
    $fname = tempnam(G5_DATA_PATH, "tmp-memberlist.xls");
    $workbook = new writeexcel_workbook($fname);
    $worksheet = $workbook->addworksheet();
    // Put Excel data
    $data = array('번호', '아이디', '이름(실명)', '닉네임', '회원권한', '우편번호', '주소', 'E-mail', '휴대폰번호', '전화번호', '팩스번호', '근무처', '전문의번호', '의사면허번호', '주민번호', '성별', '생년월일', '승인', '가입일', '이메일승인', 'SMS승인' , '메모');
    $data = array_map('iconv_euckr', $data);
    $col = 0;
    foreach($data as $cell) {
        $worksheet->write(0, $col++, $cell);
    }
    $save_it_id = ''; $csv_num = 0;
    for($i=1; $row=sql_fetch_array($result); $i++)
    {
        $csv_num++;
        $row = array_map('iconv_euckr', $row);
        $row['mb_level'] = $MEMBER_LEVEL[$row['mb_level']];
        $row['mb_sex'] = ($row['mb_sex'])?'男':'女';
        $row['mb_approval'] = ($row['mb_approval'])?'승인':'미승인';
        $worksheet->write($i, 0, $csv_num);
        $worksheet->write($i, 1, $row['mb_id']);
        $worksheet->write($i, 2, $row['mb_name']);
        $worksheet->write($i, 3, $row['mb_nick']);
        $worksheet->write($i, 4, iconv_euckr($row['mb_level']));
        $worksheet->write($i, 5, $row['mb_zip1'].$row['mb_zip2']);
        $worksheet->write($i, 6, print_address($row['mb_addr1'], $row['mb_addr2'], $row['mb_addr3'], $row['mb_addr_jibeon']));
        $worksheet->write($i, 7, $row['mb_email']);
        $worksheet->write($i, 8, conv_telno($row['mb_hp']));
        $worksheet->write($i, 9, conv_telno($row['mb_tel']));
        $worksheet->write($i, 10, conv_telno($row['mb_fax']));
        $worksheet->write($i, 11, $row['mb_officename']);
        $worksheet->write($i, 12, $row['mb_speciallicense']);
        $worksheet->write($i, 13, $row['mb_doclicense']);
        $worksheet->write($i, 14, $row['mb_jumin']);
        $worksheet->write($i, 15, iconv_euckr($row['mb_sex']));
        $worksheet->write($i, 16, $row['mb_birth']);
        $worksheet->write($i, 17, iconv_euckr($row['mb_approval']));
        $worksheet->write($i, 18, $row['mb_datetime']);
        $worksheet->write($i, 20, $row['mb_mailling']);
        $worksheet->write($i, 21, $row['mb_sms_yes']);
        $worksheet->write($i, 19, preg_replace("/\"/", """, $row['mb_memo']));
    }
    $workbook->close();
    header("Content-Type: application/x-msexcel; name=\"memberlist-".date("ymd", time()).".xls\"");
    header("Content-Disposition: inline; filename=\"memberlist-".date("ymd", time()).".xls\"");
    $fh=fopen($fname, "rb");
    fpassthru($fh);
    unlink($fname);
    exit;
}
?>
</body>
</html>

이런식으로 해봤는데 잘 안되네요. ^^;;

 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,587 | RSS
QA 내용 검색

회원로그인

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