PHPExcel 로 엑셀 파일 업로드시 에러 문의드립니다. (PHPExcel_Calculation_Exception)
본문
phpexcel 로 엑셀 파일의 내용을 db에 넣어야 되는데
엑셀에 있는 함수 계산식으로 되어 있는 셀에서 에러가 뜹니다.
검색해보니 getValue 대신 getCalculatedValue 를 쓰면 된다고 하는데 그렇게 해도 아래와 같은 에러가 뜹니다.
Fatal error: Uncaught exception 'PHPExcel_Calculation_Exception' with message 'Sheet1!B2 -> Formula Error: Unexpected~~
에러 나는 부분의 함수 계산식은 아래 형식처럼 되어 있습니다.(보기 편하게 줄바꿈 처리했고, 실제는 더 길어요)
=IFS(
OR(ISNUMBER(SEARCH({"A","B","C","D","E"},L18))),
IFS(ISNUMBER(SEARCH("0A",J18)),ROUND(U18*1.08+V18,2),
ISNUMBER(SEARCH("0B",J18)),ROUND(U18*1.1+V18,2))
OR(ISNUMBER(SEARCH({"AA","BB","CC","DD","EE"},L18))),
IFS(ISNUMBER(SEARCH("0A",J18)),ROUND(U18*1.08+V18,2),
혹시 해결 방법 아시면 도움 부탁 드립니다.
감사합니다.
require_once( G5_PLUGIN_PATH."/PHPExcel/Classes/PHPExcel.php");
$objReader = PHPExcel_IOFactory::createReader($FileType);
$obj = $objReader->load($up_file);
$obj->setActiveSheetIndex(0);
$objWorksheet = $obj->getActiveSheet();
$row_cnt = $objWorksheet->getHighestRow();
for ($i=2; $i<=$row_cnt; $i++) {
$id = $objWorksheet->getCell('A'.$i)->getValue();
$price = $objWorksheet->getCell('B'.$i)->getCalculatedValue();
}
// $price 부분에서 에러 납니다.
답변 4
$price
=
$objWorksheet
->getCell(
'B'
.
$i
)->getCalculatedValue();
이부분의 셀값이 소수점인가요? 저부분을 소수점이 계속 발생하지 않게 처리를 해주어야합니다.
클라이언트에게 얘기해서 csv로 변환후 업로드 하셔라라고 하면 안될까요? ㅎ
phpexcel(2007) 에서 허용하지 않는 최신함수(ifs - 2016부터)를 사용한 것이 아닐까요
해당 함수 제거 후 사용하기로 했습니다.
답변 주신 분들께 감사드립니다.