게시글 엑셀 다운로드 경고창 문의 채택완료
바트컨트롤
10개월 전
조회 1,389
이런 에러가 뜨는거보니 확장자명이 xls이라서 그런걸까요..?
csv, xlsx바꿔야한다는 게시글도 본것 같은데..
아래코드에서 수정할 수 없을까요?
조언이나 관련링크 부탁드립니다..버전은 gnuboard5.6.5입니다.
http://sir.kr/data/editor/2501/1846272527_1736838386.7024.png" width="100%" />
</p>
<p><?php
error_reporting(E_ALL);
ini_set('display_errors', '1');</p>
<p> // 공통 파일 포함 경로를 찾는 함수
function is_common($inc) {
$root_dir = ["adm", "bbs", "extend"];
$dir_count = 0;
foreach ($root_dir as $g5_dir) {
if (is_dir($inc . $g5_dir)) {
$dir_count += 1;
}
}
return $dir_count === count($root_dir);
}</p>
<p> // 공통 파일 경로 설정
if (is_common("./")) {
$common_include = "./common.php";
} else {
$parent_dir = "../";
while (!is_common($parent_dir)) {
$parent_dir .= "../";
}
$common_include = $parent_dir . "common.php";
}</p>
<p> include_once($common_include);</p>
<p> // 관리자 여부 확인
if (!$is_admin) {
alert("관리자가 아닙니다.", "/");
}</p>
<p> // 테이블명 설정
$table_name = "g5_write_counsel";
$g5['title'] = "엑셀 문서 다운로드";
$excel_title = $config['cf_title'];</p>
<p> // 날짜 처리
$start_date = isset($_POST['start_date']) ? date('Y-m-d', strtotime($_POST['start_date'])) : '';
$end_date = isset($_POST['end_date']) ? date('Y-m-d', strtotime($_POST['end_date'])) : '';
$file_name = $start_date && $end_date ? $excel_title."_{$start_date}_{$end_date}" : $excel_title."_all_data";</p>
<p> // 헤더 설정
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename={$file_name}.xls");
header("Content-Description: PHP Generated Data");</p>
<p> // SQL 쿼리 설정
if ($start_date && $end_date) {
$query = "SELECT * FROM $table_name
WHERE wr_datetime BETWEEN '$start_date 00:00:00' AND '$end_date 23:59:59'
ORDER BY wr_datetime";
} else {
$query = "SELECT * FROM $table_name
WHERE wr_comment = 0
ORDER BY wr_datetime";
}</p>
<p> // 디버깅용: 쿼리 출력
echo "<pre>Executing query: $query</pre>";</p>
<p> // 쿼리 실행
$result = @sql_query($query);</p>
<p> if (!$result) {
die("Query execution failed. Please check the query syntax and database connection.");
}
?></p>
<p><html>
<head>
<title><?= htmlspecialchars($g5['title']) ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<table width="100%" cellpadding="0" cellspacing="0" border="1">
<tr style="text-align:center; height:30px;">
<td style="font-weight:bold;">순번</td>
<td style="font-weight:bold;">wr_datetime</td>
<td style="font-weight:bold;">wr_ip</td>
<td style="font-weight:bold;">wr_name</td>
<td style="font-weight:bold;">wr_1</td>
<td style="font-weight:bold;">wr_2</td>
<td style="font-weight:bold;">wr_3</td>
<td style="font-weight:bold;">wr_4</td>
<td style="font-weight:bold;">wr_5</td>
<td style="font-weight:bold;">wr_6</td>
<td style="font-weight:bold;">wr_7</td>
<td style="font-weight:bold;">wr_8</td>
<td style="font-weight:bold;">wr_9</td>
<td style="font-weight:bold;">wr_10</td>
<td style="font-weight:bold;">wr_content</td>
</tr>
<?php
$i = 0;
while ($data = sql_fetch_array($result)) {
$i++;
echo "<tr style='height:30px'>
<td>{$i}</td>
<td>{$data['wr_datetime']}</td>
<td>{$data['wr_ip']}</td>
<td>{$data['wr_name']}</td>
<td>{$data['wr_1']}</td>
<td>{$data['wr_2']}</td>
<td>{$data['wr_3']}</td>
<td>{$data['wr_4']}</td>
<td>{$data['wr_5']}</td>
<td>{$data['wr_6']}</td>
<td>{$data['wr_7']}</td>
<td>{$data['wr_8']}</td>
<td>{$data['wr_9']}</td>
<td>{$data['wr_10']}</td>
<td>{$data['wr_content']}</td>
</tr>";
}</p>
<p> // 데이터가 없는 경우
if ($i === 0) {
echo "<tr><td colspan='14' style='text-align:center;'>선택한 기간동안 데이터가 없습니다.</td></tr>";
}
?>
</table>
</body>
</html></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 4개
채택된 답변
+20 포인트
답변에 대한 댓글 2개
�
바트컨트롤
10개월 전
�
하얀감자
10개월 전
다른 라이브러리를 쓰셔도 달라지지 않을 듯합니다.
댓글을 작성하려면 로그인이 필요합니다.
10개월 전
html 코드를 그대로 액셀로 저장하면 나오는 경고입니다
그누보드에 기본으로 들어있는 PHPExcel을 사용하면 됩니다
lib > PHPExcel
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
다른 엑셀 라이브러리를 통해 내보내야하나 싶어서요^^;