csv파일 읽기 질문있습니다.
본문
<?php
include_once('./_common.php');
include_once('../plugin/PHPExcel-1.8/Classes/PHPExcel.php');
$objPHPExcel = new PHPExcel();
// 엑셀 데이터를 담을 배열을 선언한다.
$excelData = array();
// 파일의 저장형식이 utf-8일 경우 한글파일 이름은 깨지므로 euc-kr로 변환해준다.
$filename = iconv("UTF-8", "EUC-KR", $_FILES['file']['tmp_name']);
// var_dump($_FILES['file']['tmp_name']);
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 = 1; $row <= $highestRow; $row++) {
// $rowData가 한줄의 데이터를 셀별로 배열처리 된다.
$rowData = $sheet -> rangeToArray("A" . $row . ":" . $highestColumn . $row, NULL, TRUE, FALSE);
// $rowData에 들어가는 값은 계속 초기화 되기때문에 값을 담을 새로운 배열을 선안하고 담는다.
$excelData[$row] = $rowData[0];
}
}
} catch(exception $e) {
// echo $e;
}
for($i=1; $i<count($excelData)+1; $i++){
for($j=1;$j<=3;$j++){
echo $i." = ". $excelData[$i][$j]."</br>";
}
}
// print_r($excelData);
이렇게 값을 불러왔는데
가져온값이 xls이면 한글값이 제대로 인식을 하는데
csv파일을 읽을때는 한글이 공백으로 바뀌네요.. 어떻게해야될까요?
답변 2
text화일 읽기 하는데 저런게 왜 필요할까요?
에디터로 열어서 utf-8로 저장한 다음 간단하게 다음 처럼 하세요
$data = file('test.csv');
for($i=0; $i<count($data); $i++){ if( !$data[$i[] ) continue;
$ss =explode(',', $data[$i]);
print_r($ss);
}
============화일을 변환하지않고 하는 법
$data = file('test.csv');
for($i=0; $i<count($data); $i++){
$tmp = iconv('euc-kr','utf-8', $data[$i]);
$ss =explode(',', $tmp);
print_r($ss);
}
https://stackoverflow.com/questions/3895819/csv-export-import-with-phpexcel
참고하세요.
$inputFileType = 'CSV';
$inputFileName = 'testFile.csv';
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);