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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
phpexcel로 테이블을 엑셀파일로 다운로드 하는데 파일형식 오류가 나옵니다.

QA

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

본문

안녕하세요.

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

 

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

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

 

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

이 질문에 댓글 쓰기 :

답변 5

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

에러코드를 올려보세요

 

말씀하신대로 확인해보니 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

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

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

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


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

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

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

 

요걸 한번 사용해 보세요. xlsx 로 저장됩니다.

 

GitHub - mk-j/PHP_XLSXWriter: Lightweight XLSX Excel Spreadsheet Writer in PHP

 

xlsxwriter.class.php 파일 다운받고( 이 파일만 필요합니다.)

 

 


<?php
include_once('./_common.php');
set_include_path( get_include_path().PATH_SEPARATOR."..");
include_once("xlsxwriter.class.php");
$f_name = "테스트";
 
$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");
$header = [];
$widths = [];
 
// $header 제목명은 모두 달라야 됨
$header["연번"] = 'integer';
$header["예약자"] = 'string';
$header["예약일자"] = 'string';
$header["예약시간"] = 'string';
$header["전화번호"] = 'string';
$header["성별"] = 'string';
$header["요청사항"] = 'string';
$header["신청일"] = 'string';
 
//셀너비
$widths[] = 10; $widths[] = 20; $widths[] = 20; $widths[] = 20; $widths[] = 20; $widths[] = 20;$widths[] = 50; $widths[] = 30;
 
$writer = new XLSXWriter();
 
$styles1 = array('font'=>'맑은 고딕','font-size'=>12,'font-style'=>'bold', 'fill'=>'#ccff999', 'halign'=>'left', 'valign'=>'center', 'border'=>'left,right,top,bottom', 'widths'=>$widths);
$styles2 = array( 'font'=>'맑은 고딕','font-size'=>12, 'halign'=>'left', 'valign'=>'center', 'border'=>'left,right,top,bottom','wrap_text'=>true);
 
$writer->writeSheetHeader('Sheet1', $header, $styles1);    //제목줄 서식 포함
$contents = [];
$x = 0;
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'];
    $writer->writeSheetRow('Sheet1', $contents, $styles2);
    $contents = [];
}
$filename = $f_name."신청현황.xlsx";
$writer->writeToFile(G5_DATA_PATH.'/tmp/'.$filename);
$filepath = G5_DATA_PATH.'/tmp/'.$filename;
$filepath = addslashes($filepath);
$original = urlencode($filename);
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();
$fp = fopen($filepath, "rb");
if (!fpassthru($fp)) {
    fclose($fp);
}
 
//파일 삭제
$delete_file = G5_DATA_PATH.'/tmp/'.$filename;
if(file_exists($delete_file) ){
    @unlink($delete_file);
}

답변을 작성하시기 전에 로그인 해주세요.
전체 15,436
QA 내용 검색
filter #php ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT