Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

NOT FOUND

문자를 날짜로 인식하는 오류 Cannot get a STRING value from a NUMERIC cell 1/1 엑셀 가져오기 토지 지분 엑셀 건물지분 엑셀 본문

카테고리 없음

문자를 날짜로 인식하는 오류 Cannot get a STRING value from a NUMERIC cell 1/1 엑셀 가져오기 토지 지분 엑셀 건물지분 엑셀

신토불이 2025. 2. 17. 16:04

엑셀에 1/1값을 입력하고 가져와야 하는 상황이 생겼다

 

그런데 엑셀에서 1/1을 입력하면 자동으로 date라고 인식되고, 가져올때도 number로 가져와진다.

예를 들어나는 1/1을 입력한 게 45658.0로 가져와졌다.

 

ㅜㅜ....

 

두가지 방법이 있다

애초에 엑셀을 넣을 때 엑셀에서 1/1을 '텍스트'로 설정해서 넣는 방법

 

하나는 엑셀이 날짜로 인식했을 경우 내 쪽에서 1/1로 변환해서 넣는 방법...

 

그런데 사실 1/1말고도 1/2 1/3 1/4등 다양한 숫자가 입력될 수 있어서 참 애매했다

 

그렇다고 1번 방법만 믿고 가기에도 불안했다 

 

1. 우선 기획자분한테 텍스트가 입력되어야 한다는 사실 알리기

2. 숫자로 들어왔을 경우 (날짜로 된 부분 잘라서 오기)

 

이렇게 해결하려고 한당

 

하 엑셀아...

// 1/1 입력 시 엑셀에서 날짜로 인식되는 문제 있음
    private String getLandStake(Cell cell) {
        if (cell.getCellType() == CellType.STRING) {
            // 셀이 문자열으로 잘 가져왔을 경우
            return cell.getStringCellValue();
        } else if (cell.getCellType() == CellType.NUMERIC) {
            Date dateValue = cell.getDateCellValue();
            SimpleDateFormat dateFormat = new SimpleDateFormat("M/d");  // "1/1" 형식으로 변환

            return dateFormat.format(dateValue);
        } else {
            // 숫자로 저장된 값을 문자로 읽어오기
            double numericValue = cell.getNumericCellValue();
            Date dateValue = DateUtil.getJavaDate(numericValue); // 숫자 값을 날짜로 변환
            SimpleDateFormat dateFormat = new SimpleDateFormat("M/d");
            // 날짜 형식으로 변환
            return dateFormat.format(dateValue);
        }

    }

 

이렇게 해서 해결했다