답변 5개
답변에 대한 댓글 2개
Message: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?
Filename: Shared/OLE.php
오류메세지로 확인해보니 아래 해결하신 분이계시네요;; 좋은 정보 감사합니다!!!
https://dhdl-it.tistory.com/58
댓글을 작성하려면 로그인이 필요합니다.
요걸 한번 사용해 보세요. xlsx 로 저장됩니다.
https://github.com/mk-j/PHP_XLSXWriter">GitHub - mk-j/PHP_XLSXWriter: Lightweight XLSX Excel Spreadsheet Writer in PHP
xlsxwriter.class.php 파일 다운받고( 이 파일만 필요합니다.)
</strong></p>
<p><?php
include_once('./_common.php');</p>
<p>set_include_path( get_include_path().PATH_SEPARATOR."..");
include_once("xlsxwriter.class.php");</p>
<p>$f_name = "테스트";</p>
<p> </p>
<p>$result = sql_query("select wr_id,wr_content,wr_name,wr_last,wr_1,wr_2,wr_3,wr_4,wr_5,wr_6,wr_7,wr_8,wr_9,wr_10 from {$write_table} order by wr_name");</p>
<p>$header = [];
$widths = [];</p>
<p> </p>
<p>// $header 제목명은 모두 달라야 됨
$header["연번"] = 'integer';
$header["예약자"] = 'string';
$header["예약일자"] = 'string';
$header["예약시간"] = 'string';
$header["전화번호"] = 'string';
$header["성별"] = 'string';
$header["요청사항"] = 'string';
$header["신청일"] = 'string';</p>
<p> </p>
<p>//셀너비
$widths[] = 10; $widths[] = 20; $widths[] = 20; $widths[] = 20; $widths[] = 20; $widths[] = 20;$widths[] = 50; $widths[] = 30;</p>
<p> </p>
<p>$writer = new XLSXWriter();</p>
<p> </p>
<p>$styles1 = array('font'=>'맑은 고딕','font-size'=>12,'font-style'=>'bold', 'fill'=>'#ccff999', 'halign'=>'left', 'valign'=>'center', 'border'=>'left,right,top,bottom', 'widths'=>$widths);</p>
<p>$styles2 = array( 'font'=>'맑은 고딕','font-size'=>12, 'halign'=>'left', 'valign'=>'center', 'border'=>'left,right,top,bottom','wrap_text'=>true);
</p>
<p>$writer->writeSheetHeader('Sheet1', $header, $styles1); //제목줄 서식 포함</p>
<p>$contents = [];</p>
<p>$x = 0;</p>
<p>foreach ($result as $field) {
$x++;
$contents[] = $y;
$contents[] = $field['wr_name'];
$contents[] = $field['wr_1'];
$contents[] = $field['wr_2'];
$contents[] = $field['wr_3'];
$contents[] = $field['wr_4'];
$contents[] = $field['wr_content'];
$contents[] = $field['wr_last'];</p>
<p> $writer->writeSheetRow('Sheet1', $contents, $styles2);
$contents = [];
}</p>
<p>$filename = $f_name."신청현황.xlsx";</p>
<p>$writer->writeToFile(G5_DATA_PATH.'/tmp/'.$filename);</p>
<p>$filepath = G5_DATA_PATH.'/tmp/'.$filename;
$filepath = addslashes($filepath);
$original = urlencode($filename);</p>
<p>if(preg_match("/msie/i", $_SERVER["HTTP_USER_AGENT"]) && preg_match("/5\.5/", $_SERVER["HTTP_USER_AGENT"])) {
header("content-type: doesn/matter");
header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$original\"");
header("content-transfer-encoding: binary");
} else if (preg_match("/Firefox/i", $_SERVER["HTTP_USER_AGENT"])){
header("content-type: file/unknown");
header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"".basename($filename)."\"");
header("content-description: php generated data");
} else {
header("content-type: file/unknown");
header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$original\"");
header("content-description: php generated data");
}
header("pragma: no-cache");
header("expires: 0");
flush();</p>
<p>$fp = fopen($filepath, "rb");</p>
<p>if (!fpassthru($fp)) {
fclose($fp);
}</p>
<p> </p>
<p>//파일 삭제</p>
<p>$delete_file = G5_DATA_PATH.'/tmp/'.$filename;
if(file_exists($delete_file) ){
@unlink($delete_file);
}</p>
<p><strong>
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 2개
엑셀을 열면 깨져서 보여서 해결을 해야 할듯합니다.
위의 메세지와는 다른 문제 입니다.
댓글을 작성하려면 로그인이 필요합니다.
서버에서 필요한 라이브러리를 올바르게 설치했는지 확인해보세요.
PHP 버전과 호환되는지 확인하셔야 합니다.
또한 PHPExcel은 더 이상 새로운 지원이 중단된 상태입니다. PhpSpreadsheet 업그레이드 고려해봐야합니다.
답변에 대한 댓글 1개
phpspreadsheet도 알아봐야겠네요.. 감사합니다!!!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인