엑셀로 CSV 의 긴 숫자와 날짜를 올바르게 여는 방법

엑셀로 CSV 의 긴 숫자와 날짜를 올바르게 여는 방법

프로그래머나 큰 데이타를 CSV 파일로 다루다 보면 긴 숫자열이 왜곡 되는 것을 볼 수 있다.

아래의 숫자는 매우 긴 숫자이고, 이를 숫자나 글자로 보던 이 숫자 그대로 엑셀에서 다루길 원할 것이다.

"긴 숫자","글자"
"12345678901234","글자1"
"12345678901235","글자1"
"00005678901236","글자1"
"00005678901237","글자1"
"00345678901238","글자1"

하지만 CSV 를 우리가 가지고 있는 프로그램으로 열면 원래 내용이 변하는 현상을 볼 수 있다. 폴라리스 오피스나, MS Office, 심지어 구글 Docs 에서 열면 아래와 같이 내용이 바뀌어 버린다.

Google Docs 에서 csv 를 볼 경우, 앞의 0000 이 사라졌다.
폴라리스 오피스, MS Office 등도 이렇게 사라져 버린다.

대부분의 상황에서는 이런 상황을 보지 못한다. 평소에는 이렇게 큰 숫자나, 아라비아 숫자로 이루어진 글자를 다루는 데이타를 다루지 않기 때문이다.

하지만, 엑셀 관련 프로그램들이 숫자형태를 "실제 숫자"로 변경해 버리는 이러한 행위는 데이타를 정확하게 다루어야 하는 상황에서는 불편하고 매우 위험하기 짝이 없다.

심지어 MS Office 의 경우에는 원본 숫자의 뒷 부분을 0 으로 바꿔버린다.
- 원본 : 345678901238
- 변경 : 345678900000 ( 내 뒤의 숫자는 어디 간 것인가? )

IT 개발자 입장에서는 이해를 할 수는 있다.
숫자 글자가 있으면 정말 숫자로 변경하면 정렬하거나 SUM 을 하기도 편하다.
그런데, 그걸 숫자로 판단하는 건 좋은데, 내용까지 없애 버리는 건 좋은 결과가 아니다. 아마도 Integer Max 값으로 간편하게 평가해서 생기는 문제라 의심된다.

[ Integer Max : https://ko.wikipedia.org/wiki/2%2C147%2C483%2C647 ]

어찌 되었든,
이러한 문제가 생기는 이유는 CSV 파일을 읽을 때 사용하는 애플리케이션의 편리한 변환 기능이 우리에게 적합하지 않기 때문이다.

파일을 Notepad 나 테스트 에디터로 열어서 수정하기는 쉽지 않으므로 애플리케이션을 바꾸면 된다.

프로그래머가 쓰는데 더 적합한 엑셀에는 OpenOffice 가 있다.
오픈 소스이고, Linux, Windows, Mac OS 모두 지원한다.

https://www.openoffice.org/download/index.html

여기서 설치 후에 OpenOffice Calc 로 해당 CSV 파일을 열면 다음과 같은 설정이 나타난다. IT 개발자가 보기에는 너무나도 당연히 바랬던 화면일 것이다.

MS Office 와 동일한(?) 기능을 하는 OpenOffice Calc
다양한 옵션이 존재한다. CSV 에는 형식이 1가지만 있지 않다.

CSV 는 여러 가지 형태가 존재한다.
글자를 나타낼 때 쌍 따옴표(")을 사용하기도 하고, 콤마(,) 로 열(컬럼)들을 구분하기도 한다. 이는 대부분의 형식을 따르지만, 따르지 않는 다고 해서 틀린 CSV 형태는 아닌 것이다.

그래서 문서을 열 때, 필요한 옵션들을 충분히 넣어줘야 하는게 원래는(?) 맞는 것이다. 알아서 못해줄 때는 내가 원하는 옵션으로 데이타에 접근해줘야 하는 것이 스트레스가 없는 길이다.

알아서 변환을 막기 위해서, "표준" -> "텍스트" 로 원하는 열을 바꿔주자.

숫자 뿐만이 아니라, 엑셀 프로그램이 제대로 인식하지 않는 날짜와 시간 포맷 또한 우리를 굉장히 괴롭힌다. 이것 또한 텍스트로 다루게 되면 굉장한 이점을 가지게 된다.

이제 원하는 글자 형태로 데이타에 접근할 수 있다.

하지만 OpenOffice 또한 훌륭한 프로그램이지만, 이 프로그램을 사용하는 사람은 소수다. 외부 업체나 공유가 필요한 순간에는 엑셀포맷(xlsx) 으로 공유해야 하므로 변환해야 한다.

이 파일을 우리는 ODF ( Open Document Sheet or Format ) 로 다른 이름으로 저장한 후에 MS Office Excel 로 열어서 xlsx 로 변환한다면 이제 다른 이에게 공유할 수 있는 파일이 될 것이다.

다른 이름으로 저장 > ODF ( 확장자 .ods ) 로 저장
이제 긴 숫자, 날짜의 다양한 포맷이 왜곡 되지 않고 열린다.