웹마스터 팁
회원정보 손쉽게 엑셀 파일로 저장하기
2009.08.05 21:47
댓글 34
-
건즈
2009.08.05 21:54
-
thejeon
2009.08.05 22:04
헤헤헤^^ -
건즈
2009.08.05 22:04
근데 원하는 테이블네임이 뭔가요?
-
thejeon
2009.08.05 22:05
회원 명단을 뽑고 싶으시다면 그부분에 xe_member 이렇게 넣으시면 됩니다.
즉 DB에 상에 표현되어 있는 테이블 명을 넣으시면 해당 테이블 내용이 엑셀로 나오는 거에요~
-
건즈
2009.08.05 22:08
아 그렇게 하니 잘 나오네요 감사합니다~~!! ^^
-
도파
2009.08.06 09:15
좋은 정보 고맙습니다. 확장변수를 포함한 게시판에서 쓸 수 있을까요?
-
thejeon
2009.08.07 20:53
확장 변수와 게시판을 동시에 불러오는것은 저도 잘 모르겠습니다. 같은 페이지에 나오긴 하지만 DB테이블은 xe_document와 xe_document_extra_vars 로 분리가 되어 있습니다. 두 테이블을 따로 불러와 합쳐도 상관 없다면 이렇게 한번 해보세요.
우선 게시판 내용은
6번째 라인 수정
$connect_table = "xe_document";
35번 라인
$result=mysql_query("select * from $connect_table where module_srl=해당 게시판 srl번호");
로 수정하시면 뽑아옵니다.
확장변수는 역시 6번째 라인 수정
$connect_table = "xe_document_extra_vars";
35번 라인
$result=mysql_query("select * from $connect_table where module_srl=해당 게시판 srl번호");
이렇게 하시면 됩니다. 하지만 확장변수는 조금 이상하게 나올겁니다. 그러나 엑셀의 자동필터 정렬을 이용하시면
손쉽게 정리가 가능할듯합니다. ^^
-
도파
2009.08.18 18:22
조언을 바탕으로 시도를 했는데요.. 경고 메시지와 함께 한글도 깨져 나오네요. 한글관련해서 EUC-KR을 UTF-8로 바꿔보았으나 동일한 증상이네요. 저장포맷을 UTF-8로 한 것 밖에 없는데.. 이렇군요.. ansi 방식으로 하면 정상적으로 xls로 저장되네요. 그러나 한글문제는 동일합니다. 해결방법이 없을까요?
Warning: Cannot modify header information - headers already sent by (output started at C:\APM_Setup\htdocs\xlsdb.php:1) in C:\APM_Setup\htdocs\xlsdb.php on line 14
Warning: Cannot modify header information - headers already sent by (output started at C:\APM_Setup\htdocs\xlsdb.php:1) in C:\APM_Setup\htdocs\xlsdb.php on line 15module_srl document_srl var_idx lang_code value eid 3930 4311 1 ko ?? ??? 3? ext_level 3930 4311 2 ko ??? ext_name 3930 4311 3 ko 123456-1234567 ext_jumin 3930 4311 4 ko ?? ??? ??3? ??????? (143-759)|@|101? 105? ext_zip 3930 4311 5 ko 02|@|123|@|4567 ext_tel 3930 4311 6 ko 010|@|1234|@|5678 ext_hp 3930 4311 7 ko sample@abcde.com ext_email 3930 4311 8 ko ??????? ext_his 3930 4311 9 ko ?? ???? ????(120??) ext_ltime 3930 4311 10 ko ext_license 3930 4311 11 ko ext_gyoahn 3930 4311 12 ko ext_nonmoon -
도파
2009.08.18 19:40
$connect=@=@mysql_connect($connect_host,$connect_id,$connect_pass); 다음 줄에
@mysql_query("set character set utf8"); 추가
<meta http-equiv=Content-Type content=text/html; charset=EUC-KR>
를
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
으로 변경
이렇게 해결했어요.. ㅎㅎ
-
도파
2009.08.19 17:03
제가 적용한 방법(확장변수)이에요.. 소트하고, value 부분만 뽑아내도록 했어요. 이 코드를 복사한 후 저장은 UTF-8방식으로 저장하셔야 합니다. 여기서는 확장변수가 13개일 때 적용한 겁니다. 하나하나 풀어가는데 쉽지 않군요.. ㅎㅎ
<?
$connect_host = "호스트주소";
$connect_id = "DB_ID";
$connect_pass = "DB_PASSWORD";
$connect_db = "DB_NAME";
$connect_table = "xe_document_extra_vars";
$xls_filename = "filename.xls";
$connect=@mysql_connect($connect_host,$connect_id,$connect_pass);
@mysql_query("set character set utf8"); // 한글 입출력 문제 해결을 위해..
$mysql=@mysql_select_db($connect_db,$connect);
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$xls_filename");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<table border=1>
<?
$fields = mysql_list_fields("$connect_db", "$connect_table");
$columns = mysql_num_fields($fields);for ($i = 0; $i < $columns; $i++) {
$field[$i]=mysql_field_name($fields, $i);
/*echo "<th>".$field[$i]. "</th>";*/
}?>
<tr>
<td>항목A</td>
<td>항목B</td>
<td>항목C</td>
<td>항목D</td>
<td>항목E</td>
<td>항목F</td>
<td>항목G</td>
<td>항목H</td>
<td>항목I</td>
<td>항목J</td>
<td>항목K</td>
<td>항목L</td>
<td>항목M</td>
</tr>
<?
/*$result=mysql_query("select * from $connect_table");*/
$result=mysql_query("select * from $connect_table where module_srl=값 order by document_srl, var_idx");
$ctmp = 1;
echo "<tr>";
while($data=mysql_fetch_assoc($result)){
for ($i = 4; $i < sizeof($field); $i=$i+5) {
echo "<td>".$data["$field[$i]"]."</td>";if($ctmp%13 == 0) // 확장변수 수만큼 값을 넣으세요. 여기서는 확장변수 13개임.
{
echo "</tr>";
if($i+5<sizeof($field)){
echo "<tr>";
}
}
$ctmp = $ctmp + 1;
}
}?>
</table>
</body>
</html> -
thejeon
2009.08.19 19:36
저는 무려 17개인데...멋지게 정렬이 되는군요. 감사합니다^^ -
도파
2009.08.19 23:25
덕분에 저도 재밌는 공부했어요.. 좋은 팁 고맙습니다. 추천 한방 땡기고 가요~~ ㅎㅎ
-
jeo
2009.11.13 19:25
멋집니다. 잘 뽑아져 오는데 게시판의 제목과 본문, 작성자 등이 같이 뽑아져 오는 방법은 없는지요?
-
세라오빠
2009.08.06 11:19
회원정보 잘 뽑아지네요 ㅎㅎ
게시판에 올려진 정보를 뽑아내는 방법도 있었으면 좋겠어요.
-
thejeon
2009.08.07 20:55
위에 게시판 내용 추출법 써놨습니다. 참고 해보세요 ^^ -
위크니
2009.08.07 17:53
우왕굳 제게 필요하던 팁입니다/ㅁ/
-
thejeon
2009.08.07 20:57
헤헤 -
어대훈
2009.08.08 10:04
ddd -
주하니
2009.08.15 13:28
위젯이나 애드온으로 만들어 주심 저같은 초보에게는 더없이 좋을 듯 ^^;;;
-
thejeon
2009.08.17 11:19
흠...시도해보겠습니다. 조금만 기다려주세요^^ -
도파
2009.08.19 12:20
SQL QUERY를 이용해 table에 있는 field 값을 재정렬까지는 했는데, 이것을 업데이트 하는 방법을 모르겠네요. 업데이트가 되어야 순서대로 뽑아낼 수 있을 것 같은데요... 방법을 계속 찾아 보는데 어렵군요.
-
thejeon
2009.08.19 19:48
다시 DB로 업로드 하셔야 한다는 말씀이신지요? -
도파
2009.08.19 21:46
해결한 결과를 위에다 올려놨어요. ㅎㅎ.. 하루종일 매달려서.. 해결했네요...
-
연필깎는까치
2009.08.22 15:26
으하하하 매우좋소
-
착한악마
2009.08.24 21:32
회원쪽 확장변수도 도파님이 하신 방법 처럼 꺠끗하게 나오게 뽑을수 있을까요~~~ -
도파
2009.09.02 09:18
가능하리라 생각됩니다.
-
sol
2009.09.02 10:08
데이타를 직접 엑셀 XML로 출력하게 되면 더 빨라요~
-
미국서
2009.09.28 00:55
저한테 엑셀파일로된 주소록이있는데 이주소록을 게시판글 처럼 한주소에 하나씩 나누어 올리고 싶은데
방법이 업네요....도와 주세요
약 3800명정도 되거든요.
부탁드립니다...
-
유샤인
2009.10.18 15:52
희한한 프로그램이라고 봅니다.
여기 동봉한 화면 복사에서 볼 수 있듯이 날짜가 수자로가 나오지 않고 날짜형식으로 출력된다면 용도가 더 높아지겠읍니다...
-
지푸
2009.10.29 23:20
날짜,시간으로 제대로 출력되려면 mysql db에서 필드 종류를 varchar에서 datetime로 바꾸어 주니깐 되네요, ^^;
-
픽스타
2014.09.29 23:09
datetime 에서 varchar로 돌아오면 날짜가 다 초기화됩니다;;; 데이터 다 날려먹었네요.
-
poko
2010.01.30 15:39
1.화일 men_xel.php 는 어디에 저장해야 하나요?
2. db의 이름은 어디서 찾지요? 제 db에 접속해서 xe화일을 열어보긴 했는데, id 나 password 같은 이름이 안 보여요.
3. 엑셀출력을 어떻게 해주어야 하나요? 엑셀프로그램을 열고 men_xel.php를 해야 하나요, 아님 ???
-
다크진
2013.06.27 17:46
엑셀파일로 저장이 되지 않고 그냥 웹화면으로 뿌려지네요 ㅡㅡ
제 컴퓨터에는 오피스 2007버전 (확장자 xlsx) 라 그런걸가요?
왜 그런지 아시는분??
-
송동우
2013.06.27 20:15
이런 멋진 일이.. 감사합니다 ^^