ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • # apache POI 라이브러리 사용과 엑셀 row 빈 값
    개발메모 2025. 3. 31. 23:39

    이전에는 경험해보지 못한 오류를 맞이하게 되었다.

     

    POI로 업로드한 엑셀을 파싱할 때,
    어떤 파일은 문제없이 업로드가 처리 되고, 어떤 파일은 오류가 발생한 것이었다.

     

    두 파일은 row 수 만 차이가 있었을 뿐, 필수값 입력 및 데이터 형식에 문제가 없었다.

    그래서 파일을 작성한 작업자에게 업로드 전의 상황을 확인해 보니,

    정상 업로드 된 엑셀 파일에 새로운 데이터를 덮어쓰는 과정에서

    새로 등록한 데이터의 row 수가 기존 데이터의 row 수보다 적어서 복붙 후 남은 기존 데이터 row를 수동으로 지웠다고 했다.

    그 부분이 미심쩍어서 찾아보니,
    엑셀 프로그램은 새로 시트를 생성 후 row에 한번도 데이터를 입력한 적이 없다고 하면,
    해당 row는 void-존재하지 않는- row로 간주하고, 한 번 이라도 값을 입력했다가 값만 지울 경우에는 해당 row는 빈 row로 남아 있다는 것이었다.
    POI 라이브러리 또한 이런 엑셀의 특성이 적용될 수 있도록 구현을 해놨던 것이었다.

    방법은 크게 2가지로,

    하나는 사용자가 row의 값을 지울 때, row의 값만 지우는 것이 아니라 row 자체를 삭제 하는 방범,

    다른 하나는 POI로 row를 읽어 들일 때, 첫 cell의 값이 비어있거나 null일 경우에는 해당 row는 값이 존재하지 않는 것으로 판단해서 파싱을 중단하는 방법이 있었던 것이다.

     

    나는 두번째 방법을 코드에 적용하고, 사용자들에게는 첫번째 방법에 대해서 숙지하도록 안내를 했다.

     

    사실 개발을 시작하고 얼마 안 있어서 부터 POI라이브러리를 써왔던 터라 나름 자신이 있다고 생각 했는데,

    아직도 한참 멀었다.

    '개발메모' 카테고리의 다른 글

    # DB time zone 다루기  (0) 2025.04.01
    # DB PK Index 생성 속도 저하 이슈 (postgreSQL)  (0) 2025.03.24
    # AWS ECS 구성하기  (0) 2025.02.17
    # 외부 DNS 도메인 AWS alb 연동  (0) 2025.02.11
    # AWS ElastiCache 사용하기  (0) 2025.02.06
Designed by Tistory.