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

PHPExcel 한글깨짐 채택완료

JeongjaePyeon 6년 전 조회 7,085

PHPExcel.php를 사용해서 

엑셀파일 업로드한 내용을 배열으로 가져오려고 했는데 한글부분이 깨지네요 

어떤부분을 추가해야 깨지지 않을까요?

 

/////////////////////////////////////// 소스 부분 /////////////////////////////////////////////

 

nclude_once('./_common.php');
require_once ('plugin/Classes/PHPExcel.php');
require_once ('plugin/Classes/PHPExcel/IOFactory.php');
header("Content-Type:text/html;charset=utf-8");


// 저장될 디렉토리
$upfile_dir = "../../data/member/";

//CSV데이타 추출시 한글깨짐방지
setlocale(LC_CTYPE, 'ko_KR.eucKR'); // CSV 한글 깨짐 문제
    
//장시간 데이터 처리될경우
set_time_limit(0);

$upfile_tmp  = $_FILES['excelFile']['tmp_name'];
$uploadfile = $upfile_dir.$_FILES['excelFile']['name'];
//한글 깨짐 방지


if (move_uploaded_file($upfile_tmp,"{$uploadfile}")) {
} else {
    echo ("<script>window.alert('디렉토리에 복사실패'); history.go(-1) </script>");
    exit;
}

$filename = $uploadfile; // 읽어들일 엑셀 파일의 경로와 파일명을 지정한다.

try {
    // 업로드한 PHP 파일을 읽어온다.
    $objPHPExcel = PHPExcel_IOFactory::load($filename);
    $sheetsCount = $objPHPExcel -> getSheetCount();

    // 시트Sheet별로 읽기
    for($i = 0; $i < $sheetsCount; $i++) {
        $objPHPExcel -> setActiveSheetIndex($i);
        $sheet = $objPHPExcel -> getActiveSheet();
        $highestRow = $sheet -> getHighestRow();                          // 마지막 행
        $highestColumn = $sheet -> getHighestColumn();    // 마지막 컬럼
         
        // 한줄읽기
        for($row = 2; $row <= $highestRow; $row++) {
            // $rowData가 한줄의 데이터를 셀별로 배열처리 된다.
            $rowData = $sheet -> rangeToArray("A" . $row . ":" . $highestColumn . $row, NULL, TRUE, FALSE);

            // $rowData에 들어가는 값은 계속 초기화 되기때문에 값을 담을 새로운 배열을 선안하고 담는다.
            $allData[$row] = $rowData[0];

        }
    }

} catch(exception $e) {
    echo $e;
}

echo "<pre>";

print_r($allData);

echo "</pre>";

//if ($msg)
   // alert($msg);

//goto_url('./member_list.php?'.$qstr);
?>
 

 

/// 결과 깨짐 표시 ///

 

 

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

답변 1개

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

header("Content-Type:text/html;charset=utf-8");

setlocale(LC_CTYPE, 'ko_KR.eucKR'); // CSV 한글 깨짐 문제

 

이두개가 다르네요?

 

밑에거 하나를 주석 처리해보세요

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

답변에 대한 댓글 3개

J
JeongjaePyeon
6년 전
그래도 변화는 없네요...
나시
6년 전
setlocale(LC_CTYPE, 'ko_KR.eucKR'); // CSV 한글 깨짐 문제

이걸

setlocale(LC_CTYPE, 'ko_KR.UTF-8'); // CSV 한글 깨짐 문제
J
JeongjaePyeon
6년 전
저렇게 바꿔도 변화는 없었는데.. 원인은 찾았습니다.
파일이 Excel 97 - 2003 통합문서 xls 였네요...

다른이름으로 저장해서 Excel 통합문서(.xlsx)로 변환해서 올리니 잘되네요
답변 달아주셔서 감사합니다 :)

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

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

로그인