반응형
사용자가 SQL 테이블의 내용을 Excel 파일로 다운로드 할 수있는 페이지를 만들려고합니다.
문제점 : 엑셀 파일을 열면 임의의 횡설수설 만 포함되어 있습니다. 예-
PKQ=DG’D²Xð[Content_Types].xml”MNÃ0…÷œ"ò%nY „švAa
•(0ö¤±êØ–gúw{&i‰@ÕnbEö{ßøyìÑdÛ¸l
mð¥‘×ÁX¿(ÅÛü)¿’òF¹à¡;@1_滘±Øc)j¢x/%ê…Eˆày¦
이것은 내 코드입니다.
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
$download="";
if (isset($_GET['surveyid'])) {
//Survey ID
$download = $_GET['surveyid'];
require_once('../Classes/PHPExcel.php');
$query="SELECT b.question_id as qid,
a.question as ques,
b.response as response,
count(b.response) as cnt
FROM v3_sai.survey_responses b
INNER JOIN v3_sai.survey_questions a
ON a.id = b.question_id
AND a.survey_id=".intval($download)."
group by b.response, a.question
order by b.question_id";
var_dump($query);
$resultdl= mysql_query($query) or die(mysql_error());
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$rowcount=1;
while($row = mysql_fetch_array($resultdl)){
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowcount, $row['qid']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowcount, $row['ques']);
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowcount, $row['response']);
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowcount, $row['cnt']);
$rowCount++;
}
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="file.xls"');
$objWriter->save('php://output');
die();
}
해결 방법
이렇게 사용할 수 있습니다
<?php
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=abc".xls");
header("Pragma: no-cache");
header ("Expires: 0");
?>
<table width="100%" border="1">
<tr>
<td>
<h1> qid</h1>
</td>
<td>
<h1> ques</h1>
</td>
<td>
<h1> response</h1>
</td>
<td>
<h1> cnt</h1>
</td>
</tr>
while($row = mysql_fetch_array($resultdl)){
<tr>
<td>
<?php echo $row['qid']; ?>
</td>
<td>
<?php echo $row['ques']; ?>
</td>
<td>
<?php echo $row['response']; ?>
</td>
<td>
<?php echo $row['cnt']; ?>
</td>
</tr>
<?php } ?>
</table>
참조 페이지 https://stackoverflow.com/questions/21428792
반응형
'MySql' 카테고리의 다른 글
MySQL INSERT INTO table IF 테이블이 존재하지 않으면 CREATE TABLE (0) | 2020.12.12 |
---|---|
MySQL foreach 루프를 사용하고 데이터베이스에 삽입하는 다중 이미지 업로드 (0) | 2020.12.12 |
MySQL 오류 파일 (0) | 2020.12.12 |
MySQL Rails Console은 ID 배열로 사용자를 찾습니다. (0) | 2020.12.12 |
MySQL PHP MySql (1045) 사용자에 대한 액세스가 거부되었습니다. (0) | 2020.12.12 |
댓글