엑셀 파일 내용을 게시글로 등록하려고 합니다
본문
안녕하세요? 항상 답변 감사합니다. 엑셀 파일을 data/file/apply 폴더에 업로드 하는 것은 성공했습니다 ^^
그런데 해당 엑셀 파일의 내용을 게시글로 등록 하려면 어떻게 해야할까요?
제가 찾는 자료와 비슷한 내용의 자료라도 있을까요?
감사합니다~
<?php
include_once("_common.php");
error_reporting(E_ALL);
ini_set("display_errors", 1);
// 상품이 많을 경우 대비 설정 변경
set_time_limit(0);
ini_set('memory_limit', '50M');
$file = $_FILES['excelFile']['tmp_name'];
include_once(G5_LIB_PATH.'/Excel/reader.php');
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('UTF-8');
$targetPath = G5_DATA_PATH . '/file/apply/';
$targetFile = $targetPath . $_FILES['excelFile']['name'];
move_uploaded_file($file, $targetFile);
// print_r($_FILES);
$data->read($targetFile);
error_reporting(E_ALL ^ E_NOTICE);
$write_table = "g5_write_{$bo_table}";
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
$total_count++;
$mb_id = $member['mb_id'];
$wr_name = $member['mb_nick'];
$wr_password = $member['mb_password'];
$wr_email = $member['mb_email'];
$wr_homepage = $member['mb_homepage'];
$wr_num = get_next_num($write_table);
$wr_reply = "";
$wr_subject = addslashes($data->sheets[0]['cells'][$i][2]);
$wr_1 = addslashes($data->sheets[0]['cells'][$i][3]);
$wr_2 = addslashes($data->sheets[0]['cells'][$i][4]);
$wr_3 = addslashes($data->sheets[0]['cells'][$i][5]);
$wr_4 = addslashes($data->sheets[0]['cells'][$i][6]);
$wr_5 = addslashes($data->sheets[0]['cells'][$i][7]);
$wr_6 = addslashes($data->sheets[0]['cells'][$i][8]);
$wr_7 = addslashes($data->sheets[0]['cells'][$i][9]);
$wr_8 = addslashes($data->sheets[0]['cells'][$i][10]);
$wr_9 = addslashes($data->sheets[0]['cells'][$i][11]);
$sql = "INSERT INTO $write_table
SET wr_num = '$wr_num',
wr_reply = '$wr_reply',
wr_parent = '$wr_parent',
wr_is_comment = '$wr_is_comment',
wr_comment = '$wr_comment',
ca_name = '$ca_name',
wr_option = '$wr_option',
wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_link1 = '$wr_link1',
wr_link2 = '$wr_link2',
wr_link1_hit = '$wr_link1_hit',
wr_link2_hit = '$wr_link2_hit',
wr_hit = '$wr_hit',
wr_good = '$wr_good',
wr_nogood = '$wr_nogood',
mb_id = '$mb_id',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$wr_datetime',
wr_last = '$wr_last',
wr_ip = '$wr_ip',
wr_facebook_user = '$wr_facebook_user',
wr_twitter_user = '$wr_twitter_user',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9'";
sql_query($sql);
$wr_id = sql_insert_id();
// 부모 아이디에 UPDATE
sql_query("UPDATE $write_table SET wr_parent = '$wr_id' WHERE wr_id = '$wr_id'");
// 새글 INSERT
sql_query("INSERT INTO {$g5['board_new_table']} (bo_table, wr_id, wr_parent, mb_id) VALUES ('{$bo_table}', '{$wr_id}', '" . G5_TIME_YMDHIS . "', '{$mb_id}')");
// 게시글 1 증가
sql_query("UPDATE {$g5['board_table']} SET bo_count_write = bo_count_write + 1 WHERE bo_table = '{$bo_table}'");
}
alert("엑셀파일 업로드가 완료되었습니다.", G5_BBS_URL."/board.php?bo_table=apply");
?>
답변 1
에휴, 저 아래 질문을 보니 드디어 오류 원인이 나왔는데 질문이 산으로 가고 있네요
The filename is not readable <--
분명 첨부되는데 읽을수 없는 화일이라고 하는 이유는 해당 라이브러리는 xls 화일만 사용합니다
그런데 xlsx 화일을 사용해서 오류가 난 것이 틀림없을 것으로 추측 됩니다
xls로 저장해서 하든가 , lib/PHPExcel 라이브러리를 사용하면 xls, xlsx 모두 사용 가능합니다
그리고 위 소스에서 먼저 질문에는 없던 move_uploaded_file()을 끼워넣었는데
업로드한 액셀화일을 서버에 저장핳 필요가 없을 듯한데 저장하는 코드는 필요없는 처리입니다
이전 소스를 그대로 사용하고 xls로 저장해서 사용하세요