답변 4개
채택된 답변
+20 포인트
4년 전
기본 그누보드에는 회원정보를 엑셀로 다운받는 메뉴나 기능이 없습니다.
커스텀된 사이트인것 같구요
엑셀을 다운받는 .php 파일에서 해당 이메일 필드를 추가해야합니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
4년 전
</p>
<p><?php
$sub_menu = '400800';
include_once('./_common.php');</p>
<p>auth_check($auth[$sub_menu], "r");</p>
<p>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);
}
}</p>
<p> return $t;
}</p>
<p>// 1.04.01
// MS엑셀 CSV 데이터로 다운로드 받음
if ($csv == 'csv')
{</p>
<p> $sql_common = " from {$g5['member_table']} ";</p>
<p> $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 .= " ) ";
}</p>
<p> if ($is_admin != 'super')
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";</p>
<p> if (!$sst) {
$sst = "mb_datetime";
$sod = "desc";
}</p>
<p> if($sst == "mb_email_certify") {
$sql_order = " order by {$sst} {$sod} , mb_datetime asc";
} else {
$sql_order = " order by {$sst} {$sod} ";
}</p>
<p> $sql = " select * {$sql_common} {$sql_search} {$sql_order}";
$result = sql_query($sql);</p>
<p> $cnt = @sql_num_rows($result);
if (!$cnt)
alert("출력할 내역이 없습니다.");</p>
<p> //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');</p>
<p> echo iconv('utf-8', 'euc-kr', "번호,아이디,이름(실명),닉네임,회원 권한,우편번호,주소,E-mail,휴대폰번호,전화번호,팩스번호,근무처,전문의번호,의사면허번호,주민번호,성별,생년월일,승인,가입일,이메일승인,SMS승인,메모\n");</p>
<p> $save_it_id = ''; $csv_num = 0;
for ($i=0; $row=sql_fetch_array($result); $i++)
{</p>
<p> $csv_num++;</p>
<p> $row = array_map('iconv_euckr', $row);</p>
<p> $row['mb_level'] = $MEMBER_LEVEL[$row['mb_level']];
$row['mb_sex'] = ($row['mb_sex'])?'男':'女';
$row['mb_approval'] = ($row['mb_approval'])?'승인':'미승인';</p>
<p> 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";</p>
<p> }
if ($i == 0)
echo '자료가 없습니다.'.PHP_EOL;</p>
<p> exit;
}</p>
<p>
// MS엑셀 XLS 데이터로 다운로드 받음
if ($csv == 'xls')
{</p>
<p> $sql_common = " from {$g5['member_table']} ";</p>
<p> $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 .= " ) ";
}</p>
<p> if ($is_admin != 'super')
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";</p>
<p> if (!$sst) {
$sst = "mb_datetime";
$sod = "desc";
}</p>
<p> if($sst == "mb_email_certify") {
$sql_order = " order by {$sst} {$sod} , mb_datetime asc";
} else {
$sql_order = " order by {$sst} {$sod} ";
}</p>
<p> $sql = " select * {$sql_common} {$sql_search} {$sql_order}";
$result = sql_query($sql);</p>
<p> $cnt = @sql_num_rows($result);
if (!$cnt)
alert("출력할 내역이 없습니다.");</p>
<p>
/*================================================================================
php_writeexcel <a href="http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/" target="_blank" rel="noopener noreferrer">http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/</a>
=================================================================================*/</p>
<p> 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');</p>
<p> $fname = tempnam(G5_DATA_PATH, "tmp-memberlist.xls");
$workbook = new writeexcel_workbook($fname);
$worksheet = $workbook->addworksheet();</p>
<p> // Put Excel data
$data = array('번호', '아이디', '이름(실명)', '닉네임', '회원권한', '우편번호', '주소', 'E-mail', '휴대폰번호', '전화번호', '팩스번호', '근무처', '전문의번호', '의사면허번호', '주민번호', '성별', '생년월일', '승인', '가입일', '이메일승인', 'SMS승인' , '메모');
$data = array_map('iconv_euckr', $data);</p>
<p> $col = 0;
foreach($data as $cell) {
$worksheet->write(0, $col++, $cell);
}</p>
<p> $save_it_id = ''; $csv_num = 0;
for($i=1; $row=sql_fetch_array($result); $i++)
{</p>
<p> $csv_num++;</p>
<p> $row = array_map('iconv_euckr', $row);</p>
<p> $row['mb_level'] = $MEMBER_LEVEL[$row['mb_level']];
$row['mb_sex'] = ($row['mb_sex'])?'男':'女';
$row['mb_approval'] = ($row['mb_approval'])?'승인':'미승인';</p>
<p> $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']));</p>
<p> }</p>
<p> $workbook->close();</p>
<p> 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);</p>
<p> exit;</p>
<p>}
?></p>
<p></body>
</html></p>
<p>
이런식으로 해봤는데 잘 안되네요. ^^;;
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인