리스토리의 IT's

*.xls를 바로 DB(mysql)에 넣기

리스토리™ 2006. 11. 14. 18:58
반응형

.txt나 .csv로 변환하여 엑셀파일을 디비로 넣는 방법은 이제는 너무나 흔한 방법이다.
변환과정없이 바로 *.xls를 디비에 넣는 방법이 궁금하여 검색해보았으나...
가장 근접한 답변은 아래와 같았다.

※아래는 phpschool.com 에서 퍼온글
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=43907&sca=&sfl=wr_subject%7C%7Cwr_content&stx=excel&sop=and
================================================================================
1. http://sourceforge.net/projects/php
excelreader/ 에서 Spreadsheet_Excel_Reader를 다운 받습니다.
2. 소스를 보면 사용법은 그냥 알 수 있습니다.
3. 한글처리가 안되는 문제도 쉽게 발견할 수 있습니다.
4. 아래와 같이 사용하면 한글도 처리가 됩니다.

<?
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP949'); // 이부분만 바꿨습니다.
$data->read('kortest.xls');

error_reporting(E_ALL ^ E_NOTICE);
echo "<table border=1>";
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
       echo "<tr>";
       for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
              echo "<td>&nbsp;".$data->sheets[0]['cells'][$i][$j]."</td>";
       }
       echo "</tr>\n";
}
echo "</table>";
?>
===================================================================================


그리고 위와 같은 방법으로 해서 한글이 깨질시에는
$data->setUTFEncoder('mb');
를 추가해 보라는 조언들...

그러나 나는 왜  한글이 안되는것일까?
영문자는 아무런 문제없이 출력이 되지만 오직 한글만이 깨진다.
수많은 검색엔진과 커뮤니티 개발자 사이트를 뒤져보았건만
Spreadsheet_Excel_Reader 를 이용해 한글출력을 성공시켰다는
내용을 찾지를 못했다.
심지어 수개월전에 나와 같은 고민을 하신 분이 있어 혹시나 어제
저녁에 메일을 보내보았건만... 그분 역시 실패해서 결국은 .csv로
밀어넣는다는 답변을 받았다 (ㅠ_ㅠ)

도데체 저 원본글에 달린 수많은 댓글에 성공하셨다는 분들은 어떻게
하신건지..궁금해 죽겠다.
오늘까지 방법을 찾아보고 안되면...나역시도 ㅡㅡ;; .csv로 해결할 생각이다.

반응형