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),
혹시 해결 방법 아시면 도움 부탁 드립니다.
감사합니다.
</p>
<p>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 부분에서 에러 납니다.</p>
<p>
답변 4개
$price = $objWorksheet->getCell('B'.$i)->getCalculatedValue();
이부분의 셀값이 소수점인가요? 저부분을 소수점이 계속 발생하지 않게 처리를 해주어야합니다.
답변에 대한 댓글 3개
그게없다면 에러는 안날텐데요.. 함수안에서 라운드처리를 한번해보세요.
어디에서 문제가 발생하는 건지 알 수가 없네요..;;
좀 더 찾아보고 안되면 다른 방법으로 처리해야겠네요.
답변 감사드립니다.
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
B1 = 11.07
B2 = 12.70
B3 = ROUND(U30/0.9+V30,2) => 4.85
B4 = ifs(or(~~~ 함수 계산식 => 77.12
이렇게 되어 있으면 B3 까지는 제대로 출력되는데
B4 에서 에러가 뜨네요.
혹시 다르게 처리할 수 있는 방법이 있을까요?