Excel 업로드후 읽기 질문입니다.
본문
xls 파일은 잘 읽어지는데 xlsx 파일은 전혀 못읽네요.. 원인좀 알수있을까요??
<?php
include "../PHPExcel-1.8/Classes/PHPExcel.php";
$objPHPExcel = new PHPExcel();// 엑셀 데이터를 담을 배열을 선언한다.
include "../PHPExcel-1.8/Classes/PHPExcel/IOFactory.php";
$uploaddir = './'; // 업로드 할 위치
$uploadfile = basename($_FILES['userfile']['name']);
echo '<pre>';
echo 'output:'.basename($_FILES['userfile']['tmp_name']);
if(move_uploaded_file($_FILES['userfile']['tmp_name'], "$uploaddir/$uploadfile")) {
echo '<br>good file<br>';
}else{
print '<br>avoid attack!<br>';
}
echo 'detail debug :';
print_r($_FILES);
print "</pre>";
// $filename = './testA.xlsx'; // 읽어들일 엑셀 파일의 경로와 파일명을 지정한다.
$filename = $_FILES['userfile']['name']; // 읽어들일 엑셀 파일의 경로와 파일명을 지정한다.
$info=pathinfo($_FILES['userfile']['name']);
$exten=$info['extension'];
try {
// 업로드 된 엑셀 형식에 맞는 Reader객체를 만든다.
// 읽기전용으로 설정
// $objReader->setReadDataOnly(true);
if($exten=='xlsx'){
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
}else{
$objReader = PHPExcel_IOFactory::createReaderForFile($filename);
}
// 엑셀파일을 읽는다
$objExcel = $objReader->load($filename);
// 첫번째 시트를 선택
$objExcel->setActiveSheetIndex(0);
$objWorksheet = $objExcel->getActiveSheet();
$rowIterator = $objWorksheet->getRowIterator();
foreach ($rowIterator as $row) { // 모든 행에 대해서
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
}
$maxRow = $objWorksheet->getHighestRow();
for ($i = 0 ; $i <= $maxRow ; $i++) {
$name = $objWorksheet->getCell('A' . $i)->getValue(); // A열
$addr1 = $objWorksheet->getCell('B' . $i)->getValue(); // B열
$reg_date = PHPExcel_Style_NumberFormat::toFormattedString($reg_date, 'YYYY-MM-DD'); // 날짜 형태의 셀을 읽을때는 toFormattedString를 사용한다.
echo $name;
echo '<br/>';
}
}
catch (exception $e) {
echo $e;
}
?>