CSV 엑셀 변환 숫자 서식 깨지는 이유와 해결법

CSV 파일을 더블클릭해서 엑셀로 열면 우편번호 "03127"이 "3127"로 바뀌어 앞자리 0이 사라지거나, 13자리 상품 바코드가 "8.80123E+12" 같은 지수 표기로 변해버리는 경우가 있습니다. 파일이 손상된 게 아니라 엑셀이 CSV를 열 때 각 열의 서식을 자동으로 추정하기 때문에 생기는 현상입니다. 원리를 알면 CSV를 열기 전에 서식을 지정해서 이 문제를 막을 수 있습니다.
요약 ① 엑셀은 CSV를 더블클릭으로 열 때 열마다 서식을 "일반(General)"로 추정해서 앞자리 0과 큰 숫자 표기를 바꿔버립니다. ② 엑셀의 데이터 가져오기 기능에서 문제되는 열의 서식을 "텍스트"로 직접 지정하면 원본 그대로 유지됩니다. ③ 이미 서식이 깨진 채로 저장한 파일은 원본 숫자를 복구할 수 없으므로, 애초에 CSV를 원하는 서식으로 변환해 두는 편이 안전합니다.
문제
CSV(쉼표로 구분된 텍스트 파일)에는 셀 서식 정보가 전혀 들어있지 않습니다. 값이 그냥 "03127", "8801234567890" 같은 순수 텍스트일 뿐입니다.
엑셀에서 CSV 파일을 더블클릭으로 열면, 파일 안에 서식 정보가 없으므로 엑셀이 열마다 "숫자처럼 보이면 숫자, 아니면 텍스트"로 스스로 판단합니다. 이 과정에서 두 가지가 흔히 깨집니다.
- 앞자리 0이 사라짐: "03127" 같은 우편번호나 "0"으로 시작하는 사번·회원번호가 숫자 3127로 해석되면서 앞의 0이 없어집니다.
- 긴 숫자가 지수 표기로 바뀜: 12자리 이상의 바코드·운송장 번호·주문번호가 "1.23457E+12"처럼 지수 표기로 표시됩니다. 특히 15자리를 넘는 숫자는 뒷자리 몇 개가 아예 0으로 바뀌어 원래 값을 되돌릴 수 없는 정밀도 손실까지 생깁니다.
두 현상 모두 파일이 잘못된 게 아니라, 서식 정보가 없는 CSV를 열 때 엑셀이 "일반" 서식으로 자동 추정한 결과입니다.
해결
엑셀에서 이 문제를 막는 정석은 CSV를 더블클릭으로 바로 열지 않는 것입니다.
- 엑셀에서 새 통합 문서를 열고 데이터 → 텍스트/CSV에서 가져오기(또는 예전 버전은 데이터 → 텍스트 파일)를 선택합니다.
- 가져오기 마법사에서 문제되는 열을 클릭하고 열 서식을 텍스트로 지정합니다.
- 이 상태로 가져오면 "03127"은 문자 그대로, "8801234567890"도 숫자 변환 없이 원본 자릿수 그대로 들어옵니다.
이 방법은 확실하지만 열이 많을 때마다 하나씩 서식을 지정해야 하고, 이미 더블클릭으로 열어서 저장까지 해버린 파일은 원본 숫자를 되돌릴 방법이 없습니다. CSV 자체를 원하는 서식으로 미리 확정해서 xlsx로 바꿔두면 이런 반복 작업과 되돌릴 수 없는 실수를 함께 줄일 수 있습니다. 저희 도구로 확인하기.
무료 · 가입 불필요 · 브라우저 안에서만 CSV를 진짜 xlsx로 변환

이 도구는 CSV 파일을 드래그해서 넣거나 텍스트를 직접 붙여넣으면, 구분자(쉼표·탭·세미콜론·파이프)를 골라 즉시 파싱한 뒤 브라우저 안에서만 진짜 xlsx 파일을 만들어 줍니다. 서버로 전송되지 않아서 값이 외부로 나가지 않습니다.
핵심은 "숫자를 자동으로 숫자 셀로 변환" 체크박스입니다. 체크를 켜두면 "03127"처럼 0으로 시작하는 값은 우편번호일 가능성이 높다고 보고 자동으로 텍스트로 유지하지만, 계산이 필요한 값(가격·수량)은 실제 숫자 셀로 바뀌어 엑셀에서 합계나 수식을 바로 쓸 수 있습니다. 반대로 12자리가 넘는 바코드·운송장 번호처럼 계산할 일이 없는 긴 숫자 열이 있다면 이 체크를 꺼서 파일 전체를 텍스트로 유지하는 편이 지수 표기와 정밀도 손실을 막는 가장 확실한 방법입니다.
자주 막히는 지점
| 상황 | 확인할 점 |
|---|---|
| 우편번호·사번처럼 0으로 시작하는 값 | 체크박스를 켜둬도 0으로 시작하는 값은 자동으로 텍스트 유지됨 |
| 12자리 넘는 바코드·운송장 번호 | "숫자 자동 변환" 체크를 꺼서 파일 전체를 텍스트로 유지 |
| 합계·평균이 필요한 금액·수량 열 | "숫자 자동 변환"을 켜야 진짜 숫자 셀로 저장돼 수식이 동작함 |
| CSV 구분자가 쉼표가 아님(탭·세미콜론 등) | 구분자를 자동 감지하지 않으므로 직접 골라야 함 |
| 미리보기 표가 최대 8행까지만 보임 | 미리보기만 8행 제한이고, 변환·다운로드되는 파일에는 전체 행이 포함됨 |
정리
CSV를 엑셀로 열 때 앞자리 0이 사라지거나 긴 숫자가 지수 표기로 바뀌는 건 파일 손상이 아니라, 서식 정보가 없는 CSV를 엑셀이 "일반" 서식으로 자동 추정하기 때문입니다. 엑셀의 데이터 가져오기 기능으로 열 서식을 직접 텍스트로 지정하거나, CSV 단계에서 원하는 서식을 미리 확정해 xlsx로 변환해 두면 이 문제를 예방할 수 있습니다.
무료 · 가입 불필요 · 브라우저 안에서만 CSV를 진짜 xlsx로 변환
자주 묻는 질문
이미 앞자리 0이 사라진 채로 저장한 파일, 복구할 수 있나요?
원본 CSV 파일이 따로 남아있다면 그 원본을 다시 텍스트 서식으로 가져오거나 변환해서 살릴 수 있습니다. 하지만 이미 숫자로 바뀐 상태의 파일을 덮어 저장했다면, 사라진 0은 파일 안 어디에도 남아있지 않으므로 그 파일만으로는 복구할 방법이 없습니다.
숫자 자동 변환을 껐다 켰다 하면서 같은 CSV를 여러 번 변환해도 되나요?
가능합니다. 변환은 브라우저 안에서 원본 CSV 텍스트를 다시 읽어 매번 새로 처리하므로, 체크박스를 바꿔가며 필요한 만큼 반복해서 xlsx를 내려받아도 원본에는 영향이 없습니다.
구분자를 잘못 고르면 어떻게 되나요?
실제 구분자와 다른 값을 고르면 한 줄 전체가 한 칸에 들어가거나 열이 어긋나 보입니다. 미리보기 표에서 열이 예상대로 나뉘어 있는지 확인한 뒤 구분자를 다시 고르면 바로 반영됩니다.
