테스트 사이트 - 개발 중인 베타 버전입니다

phpexcel로 테이블을 엑셀파일로 다운로드 하는데 파일형식 오류가 나옵니다. 채택완료

오켕 2년 전 조회 3,683

안녕하세요.

phpexcel로 테이블을 엑셀파일로 다운로드 받으려고 하면  아래 이미지처럼 오류가 나옵니다.

 

A서버에서는 정상작동이 되는데 

cafe24로 옮기면 다른 부분은 정상인데 phpexcel로 다운로드시에 저 오류가 발생합니다.

 

혹 어떤게 문제인지 알 수 있을까요??

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
2년 전

저장한 액셀 화일을 문서편집기로 열어보면 첫줄에 에러코드가 있습니다

에러코드를 올려보세요

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

엑스엠엘
2년 전
확장자를 TXT 로 바꾸고 열어 보세요.
오켕
2년 전
말씀하신대로 확인해보니 php 오류메세지가 나오면서 아래 처럼 오류가 나옵니다.
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>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

e
2년 전

실제로 엑세파일 저장하고 열리는데는 문제가 없으므로,

그 안내문 무시하고 열어서 사용하시면 됩니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

오켕
2년 전
답변 감사합니다!!!
엑셀을 열면 깨져서 보여서 해결을 해야 할듯합니다.
e
eyekiss
2년 전
엑셀이 깨져보이는건
위의 메세지와는 다른 문제 입니다.

댓글을 작성하려면 로그인이 필요합니다.

웅푸
2년 전

서버에서 필요한 라이브러리를 올바르게 설치했는지 확인해보세요.

PHP 버전과 호환되는지 확인하셔야 합니다.


또한 PHPExcel은 더 이상 새로운 지원이 중단된 상태입니다. PhpSpreadsheet 업그레이드 고려해봐야합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

오켕
2년 전
좋은 정보 감사합니다!!!
phpspreadsheet도 알아봐야겠네요.. 감사합니다!!!

댓글을 작성하려면 로그인이 필요합니다.

카페24 서버환경이 다르면 그럴수도있어요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

오켕
2년 전
넵!! 환경이 달라서 그런듯합니다. 같은 서버에서는 이상이 없네요;;
답변 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인