csv파일은 굉장히 오래된 포맷입니다. Lotus 1-2-3시절부터 써오던 현재 Excel이 가지고 있는 위상을 그대로 가지고 있지요.


사실 csv포맷 자체는 단순하기 때문에 8bit마이컴에서도 쓸 수 있을 정도로 간단합니다. 하지만 그에비해 이를 이용하는 스프레드시트는 발전에 발전을 거듭하여 이에 범접할 수 없는 위치까지 왔습니다.


사실 최근에 쓰이는 스프레드시트는 csv포맷을 지금도 잘 읽어들입니다.

단, 나름 똑똑한 기능이라고 CSV파일에 숫자가 있으면 이를 Excel이나 LibreOffice Calc에서 읽어서 숫자 셀로 만들어버립니다. 편리한 기능이지요.


다만, 이건 숫자 데이터상의 CSV일때 이야기고 다른 상황이면 애매해집니다.


대표적인 경우가 다음과 같은 경우입니다.


대충 이런 형태의 CSV파일입니다.


제일 왼쪽은 16진수로 표시되고 그 다음열은 영문 문장 그 다음열은 번역된 문장으로 구성됩니다. 열과 열은 탭으로 구분되어있는 일명 TSV형태 입니다.


사실 LibreOffice의 Calc나 Excel, Google SpreadSheet 등 최근 스프레드시트는 모두 잘 읽어들입니다. 문제는.. 그놈의 숫자셀 기능이 문제를 일으킨다는 것이지요.


38e0이란 16진수가 38이 되어버렸다.

사실 그냥 숫자가 아닌 16진수이기 때문에 오인할 가능성은 있습니다. 문제는 16진수는 abcdef를 사용하는데 이를 알파벳으로 읽어버리고 이는 문자열셀로 만듭니다. 숫자만 있으면 숫자로 남기지요. 하지만 알파벳e와 숫자가 섞인 것은 자그마치 지수로 생각합니다!


그러니까 본래 38e0 이라는 16진수를 3.8 X 10 이라는 숫자로 읽어버리는 것입니다. 참고로 이를 원래의 텍스트로 되돌리지도 못합니다. 이놈의 프로그램은 CSV를 다시 읽어들인다든지 하는 것은 없더군요!


이는 Excel에도 같은 문제가 있기에 해당 문제에 대해 물어본 사람이 있습니다.

https://answers.microsoft.com/ko-kr/msoffice/forum/msoffice_excel-mso_winother-mso_2010/csv-%ED%8C%8C%EC%9D%BC-excel-open-%EC%8B%9C/7f8bcd9f-2177-4e80-b31c-0a79d61f117a


그런데 동문서답하네요. 그 이야기가 아닌 것 같은데...


그런데 불행인지 다행인지 딱 하나 Google 스프레드시트에서 이를 회피할 수 있는 방법이 있었습니다. 어차피 Google 스프레드시트에서 xls나 ods로 내보내기가 가능하니까 다른 프로그램 사용자도 이를 적용해서 변환한 다음 사용하면 아무 문제없이 쓸 수 있을 것입니다.


일단 https://docs.google.com/spreadsheets/u/0/ 일단 여기로 접속합니다. 구글 로그인은 되어있다는 가정하에요.


개인 적으로는 크롬을 사용하는 것을 추천합니다. 이러니 저러니해도 크롬이 가장 구글의 서비스를 쓰기 편하거든요.





그리고 오른쪽 아래의 빨간색 +버튼을 누릅니다. 그러면 빈 스프레드시트가 생성됩니다.


뒤에있는 데이터는 신경쓰지말자. 아까 보여줬던 그 데이터다.

파일 - 가져오기

이렇게 들어갑니다.


그리고 업로드 탭으로 들어간 뒤에 드래그 하라는 곳으로 CSV 파일을 던져 넣어서 업로드 합니다. 아니면 파란버튼을 눌러서 CSV파일을 열어도 됩니다.


그러면



파일 가져오기에 대한 옵션이 뜨는데 다른 것은 전부 기본상태로 둬도 되지만(구분 유형은 해주는 것이 그래도 좋습니다. 정 모르겠다고 하실 때만 자동 감지를 해주세요.)

"텍스트를 숫자 및 날짜로 전환" 부분을 아니오로 체크합니다. 그러면...


아까 지수로 읽히던 부분이 16진수의 텍스트로 잘 읽힙니다!


그럼 이걸 그냥 Google스프레드시트에서 바로 작업해도 되고 익숙한 다른 프로그램을 사용하고 싶으시면


파일 - 다른 이름으로 다운로드에서 xls 혹은 ods 다운로드가 가능합니다. 그러니까 이후에는 아무 문제없이 텍스트 셀로 된 파일을 열 수 있는 것입니다.


일단 구글의 프로그램으로 우회하긴 했지만 대량의 데이터가 들어간 CSV를 ods나 xls로 만들어 셀 속성을 살릴 수 있는 방법이었습니다. 이후 셀 속성을 바꾸고 싶다면 해당 프로그램에서 셀 속성을 바꾸면 그만입니다.

,