엑셀리더를 이용하여 음수를 받았을경우 양수로 변합니다. 채택완료

1028489085_1557469483.9401.png

위 이미지처럼 엑셀을 만들었습니다.

Copy
$file = $_FILES['excelfile']['tmp_name'];
include_once(GML_LIB_PATH.'/Excel/reader.php');
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('UTF-8');
$data->read($file);
error_reporting(E_ALL ^ E_NOTICE);

for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
        $j = 1;
        $us_product        = trim(addslashes($data->sheets[0]['cells'][$i][$j++]));
        $us_money        = trim(addslashes($data->sheets[0]['cells'][$i][$j++]));
        echo $us_money;

}

위처럼 하니..

1014583924 란 숫자가 찍혀버리네요 ㅠ.ㅠ

음수가 왜 양수로 바뀌죠?

음수를 -59157900 이 아닌 -490000 으로 지정하여 하면 또 -490000 으로 잘 나옵니다.

이유를 모르겠네요...

답변 4개

리더를 PHPExcel 로 변경하여 해결하였습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

=number_format(trim(addslashes($data->sheets[0]['cells'][$i][$j++])));

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

^^; 안됩니다.

댓글을 작성하려면 로그인이 필요합니다.

$j = 1 을 for문 밖에서 선언했어야 하지 않나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

$j 는 좌측부터 칸수입니다.

댓글을 작성하려면 로그인이 필요합니다.

 $us_money        = intval(  trim(addslashes($data->sheets[0]['cells'][$i][$j++])) );

형식을 정수형으로 바꿔보시고 해보세요 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다.

하지만 같은현상입니다. ㅠ.ㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고