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

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

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>

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

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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