묻고답하기
게시판 글 엑셀 추출 질문입니다!
2014.12.16 10:46
게시판의 확장변수 부분만 추출하기 위해 아래와 같은 코드를 사용하고 있습니다.
그런데 계속
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$xls_filename");
이 부분에 오류가 있다고 뜨고, 자동 엑셀 저장이 되지 않습니다.
혹시 해결 방법 있을까요?
도와주세요ㅠㅠㅠ
<?
$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>
댓글 5
-
외인
2014.12.16 10:57
-
munya
2014.12.16 10:59
Warning: Cannot modify header information - headers already sent by (output started at /home/moonend72/www/xe/out_excel2.php:1) in /home/moonend72/www/xe/out_excel2.php on line 16 Warning: Cannot modify header information - headers already sent by (output started at /home/moonend72/www/xe/out_excel2.php:1) in /home/moonend72/www/xe/out_excel2.php on line 17
라는 문구만 뜨고, 출력 내용이 그냥 화면에 뜹니다ㅠㅠ
-
외인
2014.12.16 11:02
이미 헤더에 보내진 정보가 있어 수정할 수 없습니다.... 하는 에러 입니당
-
munya
2014.12.16 11:08
그럼 혹시 저장 언어와 관련이 있을까요? UTF-8 형식으로 저장을 하면 한글 출력이 되는 대신 엑셀 저장이 되지 않고 오류문이 뜹니다. 그러나 ANSI형식으로 저장을 하면 한글 오류가 나지만 엑셀 저장은 돼요...ㅠㅠ 뭐가 문제인걸까요ㅠㅠ
-
munya
2014.12.16 11:30
해결했습니다! ANSI형식으로 저장하는 대신 위의 코드를
@mysql_query("set character set utf8"); // 한글 입출력 문제 해결을 위해..부분 삭제후<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 를<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">로 수정했더니 정상적으로 작동합니다!!감사합니다!!ㅠㅠㅠㅠ
header 앞에 다른 출력이 나오지 않나 확인해 보세요.