PHPExcel 로 엑셀 파일 업로드시 에러 문의드립니다. (PHPExcel_Calculation_Exception)

PHPExcel 로 엑셀 파일 업로드시 에러 문의드립니다. (PHPExcel_Calculation_Exception)

QA

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();

이부분의 셀값이 소수점인가요? 저부분을 소수점이 계속 발생하지 않게 처리를 해주어야합니다.

네~ 전부 소수점 입니다. 그런데

B1 = 11.07
B2 = 12.70
B3 = ROUND(U30/0.9+V30,2) => 4.85
B4 = ifs(or(~~~ 함수 계산식 => 77.12


이렇게 되어 있으면 B3 까지는 제대로 출력되는데

B4 에서 에러가 뜨네요.

혹시 다르게 처리할 수 있는 방법이 있을까요?

함수 안에 라운드 처리는 되어 있습니다.
어디에서 문제가 발생하는 건지 알 수가 없네요..;;

좀 더 찾아보고 안되면 다른 방법으로 처리해야겠네요.

답변 감사드립니다.

클라이언트에게 얘기해서 csv로 변환후 업로드 하셔라라고 하면 안될까요? ㅎ

답변을 작성하시기 전에 로그인 해주세요.
전체 28
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT