CSV 엑셀 변환 — 한글 깨짐·앞자리 0·긴 숫자를 지키며 CSV 를 엑셀로 여는 법 (엑셀 365 실측)
CSV 파일을 엑셀에서 열거나 엑셀 파일(xlsx)로 바꾸려다 한글이 깨지거나, 주문번호·우편번호 앞의 0 이 사라지거나, 카드번호 끝자리가 0 으로 바뀌는 경우가 많습니다. 파일이 망가진 게 아니라 엑셀이 여는 순간 값을 바꾸는 것입니다. 같은 CSV 를 인코딩 세 가지로 만들어 엑셀 365 에서 더블클릭으로 열 때와 데이터 → 텍스트/CSV에서 로 가져올 때를 직접 비교했고, 값이 하나도 바뀌지 않게 여는 순서와 그 과정에서 다시 값을 바꿔 버리는 함정까지 정리했습니다.
시험한 CSV
가상의 주문 3건을 CSV 로 만들었습니다. 열은 주문번호(00123), 이름(한글·악센트), 우편번호(04524), 휴대폰(01012345678), 카드번호 16자리, 상품코드(1E5·2E10·AB-7), 옵션(3-1·MAR1·1/2), 금액("1,250,000" — 쉼표가 들어 따옴표로 감쌈)입니다. 모두 '글자 그대로 남아야 하는' 값이고, 금액만 계산할 숫자입니다.
주문번호,이름,우편번호,휴대폰,카드번호,상품코드,옵션,금액
00123,김민준,04524,01012345678,1234567812345678,1E5,3-1,"1,250,000"
00124,José Núñez,06236,01098765432,9876543298765432,2E10,MAR1,"89,000"
00125,Zoë Müller,13529,01055556666,4000123412341234,AB-7,1/2,"15,900"같은 내용을 UTF-8(BOM 없음), UTF-8(BOM 있음), CP949(윈도우 한국어 ANSI — 악센트 글자는 들어가지 않아 영문으로 바꿈) 세 파일로 저장했습니다. 시험 환경은 윈도우 11, 엑셀 Microsoft 365(버전 16.0, 빌드 20527)이고 엑셀 옵션은 기본값 그대로입니다.
방법 1: 더블클릭으로 열기 — 무엇이 바뀌나
탐색기에서 CSV 를 더블클릭하면 엑셀이 바로 엽니다. 마이크로소프트 지원 문서 '텍스트(.txt 또는 .csv) 파일 가져오기 또는 내보내기'는 이때 엑셀이 현재 기본 데이터 형식 설정으로 열마다 해석한다고 설명합니다. 실제로 열어 보니 이렇게 바뀌었습니다.
| 칸 | CSV 안의 값 | 엑셀 화면 | 엑셀이 저장한 값 |
|---|---|---|---|
| 주문번호 | 00123 | 123 | 숫자 123 |
| 우편번호 | 04524 | 4524 | 숫자 4524 |
| 휴대폰 | 01012345678 | 1.01E+09 | 숫자 1012345678 |
| 카드번호 | 1234567812345678 | 1.23E+15 | 1234567812345670 (끝자리 0) |
| 상품코드 | 1E5 / 2E10 / AB-7 | 1.00E+05 / 2.00E+10 / AB-7 | 100000 / 20000000000 / 글자 |
| 옵션 | 3-1 / MAR1 / 1/2 | 03월 01일 / 01-Mar / 01월 02일 | 날짜 (올해 3월 1일 등) |
| 금액 | "1,250,000" | 1,250,000 | 숫자 1250000 (이건 원하는 대로) |
마이크로소프트 지원 문서 '앞자리 0 과 큰 숫자 유지'에 따르면 엑셀은 앞자리 0 을 자동으로 지우고, 숫자 정밀도가 15자리라 16자리부터는 끝을 0 으로 바꿉니다. 이렇게 바뀐 칸은 나중에 서식을 텍스트로 바꿔도 원래 값으로 돌아오지 않습니다. 이 상태로 다른 이름으로 저장 → Excel 통합 문서(xlsx) 를 하자 123·4524·1234567812345670·100000 과 날짜 값이 그대로 저장됐습니다. 'CSV 를 엑셀 파일로 변환'할 때 열기부터 바르게 해야 하는 이유입니다.
한글이 깨지는 건 BOM 없는 UTF-8 일 때만
세 파일을 똑같이 더블클릭했을 때 BOM 없는 UTF-8 만 이름이 깨졌습니다 — 김민준은 源誘쇱?, José Núñez 는 Jos챕 N첬챰ez. BOM 있는 UTF-8 과 CP949 파일은 한글이 정상이었습니다(숫자·날짜는 셋 다 똑같이 바뀜). 웹 서비스나 프로그램이 내보낸 CSV 는 BOM 없는 UTF-8 인 경우가 많아, 받은 CSV 를 열자마자 한글이 깨졌다면 거의 이 경우입니다.
방법 2: 데이터 → 텍스트/CSV에서 — 값을 그대로 가져오기
같은 지원 문서가 안내하는 두 번째 길이 가져오기입니다. 엑셀 365 에서는 파워 쿼리가 이 일을 합니다. 빈 통합 문서에서 시작합니다.
- 1데이터 탭 → 텍스트/CSV에서 를 누르고 CSV 파일을 고릅니다.
- 2미리 보기 창 위쪽에 파일 원본 · 구분 기호 · 데이터 형식 검색 세 칸이 있습니다. 시험한 BOM 없는 UTF-8 파일은 파일 원본이 저절로 65001: 유니코드(UTF-8) 로 잡혀 한글·악센트가 정상이었습니다. 깨져 보이면 여기서 65001 이나 949(한국어)로 바꿉니다.
- 3데이터 형식 검색 을 '첫 200개 행 기준'에서 '데이터 형식을 검색 안 함' 으로 바꿉니다. 미리 보기의 00123·04524·01012345678·16자리 번호·1E5·3-1 이 그대로 보이면 맞습니다.
- 4제목 줄이 Column1~8 아래 첫 줄로 내려와 있으니 데이터 변환 을 눌러 파워 쿼리 편집기로 들어가 첫 행을 머리글로 사용 을 누릅니다.
- 5오른쪽 적용된 단계 에 '변경된 유형'이 새로 생겼다면 왼쪽 ✕ 로 지웁니다(아래 함정).
- 6계산할 열만 형식을 바꿉니다 — 금액 열 머리글의 형식 아이콘(ABC)을 눌러 정수. 그다음 닫기 및 로드.
기본값('첫 200개 행 기준')으로 그냥 로드하면 파일 원본은 맞아도 형식 검색 때문에 주문번호 123, 우편번호 4524, 휴대폰 1012345678, 카드번호 1.23457E+15, 옵션은 2026-03-01 같은 날짜로 들어왔습니다. 더블클릭과 다른 점은 1E5 가 글자로 남은 것 하나뿐이었습니다. 한글 깨짐만 해결되고 0 은 그대로 사라지는 셈입니다.
함정: '첫 행을 머리글로 사용'이 형식을 다시 바꾼다
형식 검색을 꺼서 모든 열이 텍스트인 상태에서 편집기의 첫 행을 머리글로 사용 을 누르자, 적용된 단계에 '승격된 헤더' 다음으로 '변경된 유형'이 저절로 붙었습니다. 수식 입력줄에는 주문번호·우편번호·휴대폰·카드번호·금액이 Int64, 옵션이 date 로 적혀 있었고 미리 보기는 다시 123·4524·1.23457E+15 로 바뀌었습니다. 처음 창에서 형식 검색을 꺼 둔 것만 믿으면 여기서 다시 당합니다.
'변경된 유형' 단계를 ✕ 로 지우자 머리글은 그대로 올라간 채 값이 00123·04524·01012345678·1234567812345678·1E5·3-1 로 돌아왔습니다. 그 뒤 금액 열만 정수로 바꾸니 1250000·89000·15900 이 숫자가 됐고, 닫기 및 로드 후 금액 합계가 1,354,900 으로 계산됐습니다. 다른 열은 텍스트로 남았습니다.
가져온 표는 원본 CSV 와 연결된 '쿼리 표'입니다. CSV 가 바뀌면 데이터 → 모두 새로 고침으로 다시 불러올 수 있고, 지금 표를 그대로 두려면 다른 이름으로 저장 → Excel 통합 문서(xlsx)로 저장하면 됩니다.
엑셀 365 의 '자동 데이터 변환' 옵션
마이크로소프트 지원 문서 '자동 데이터 변환 설정'에 따르면 Microsoft 365·엑셀 2024 에는 더블클릭으로 CSV·TXT 를 열 때의 변환을 끄는 옵션이 있습니다. 위치는 파일 → 옵션 → 데이터 → 자동 데이터 변환 이고, 항목은 네 가지입니다(영문 도움말의 항목을 옮긴 것 — 한국어 화면의 이름은 조금 다를 수 있습니다).
- 앞에 오는 0 을 제거하고 숫자로 변환 — 끄면 00123 이 텍스트로 남음
- 긴 숫자의 처음 15자리를 유지하고 필요하면 지수 표기로 표시 — 끄면 16자리 이상이 텍스트로 남음(문서 예: 신용카드 번호)
- 문자 'E' 주위의 숫자를 지수 표기 숫자로 변환 — 끄면 123E5 가 텍스트로 남음
- 연속된 문자와 숫자로 된 '날짜 같은' 조합을 날짜로 변환 — 끄면 JAN1 같은 값이 텍스트로 남음(문서는 JAN 1·JAN-1 처럼 공백·하이픈이 있으면 여전히 날짜가 될 수 있다고 적음)
문서는 이 옵션이 파워 쿼리로 가져온 데이터에는 직접 영향을 주지 않는다고 밝힙니다. 그래서 방법 2 의 형식 검색은 따로 꺼야 합니다. 또 문서 기준으로 3-1·1/2 처럼 하이픈·빗금이 든 값은 옵션을 꺼도 날짜가 될 수 있어, 날짜처럼 생긴 코드가 있다면 방법 2 가 확실합니다. 이 글의 결과는 모두 옵션 기본값에서 잰 것이고, 이 PC 의 옵션은 바꾸지 않았습니다.
비교
| 여는 방법 | 한글 (BOM 없는 UTF-8) | 앞자리 0 | 16자리 숫자 | 3-1 · MAR1 | 금액 합계 |
|---|---|---|---|---|---|
| 더블클릭 (옵션 기본값) | 깨짐 | 사라짐 | 끝자리 0 | 날짜 | 됨 |
| 텍스트/CSV에서 (기본 형식 검색) | 정상 (65001 자동) | 사라짐 | 1.23457E+15 | 날짜 | 됨 |
| 텍스트/CSV에서 + 형식 검색 안 함 | 정상 | 남음 | 남음 | 글자 그대로 | 금액 열만 정수로 바꾸면 됨 |
| 위 + 첫 행 머리글 (자동 단계 그대로 둠) | 정상 | 다시 사라짐 | 다시 바뀜 | 날짜 | 됨 |
결과가 이상할 때 확인 순서
- 1한글이 源誘쇱? 처럼 깨짐 — BOM 없는 UTF-8 을 더블클릭한 것입니다. 텍스트/CSV에서 로 다시 가져오고 파일 원본이 65001 인지 봅니다.
- 200123 이 123, 긴 번호가 1.23E+15 — 형식 자동 검색 때문입니다. 미리 보기에서 '데이터 형식을 검색 안 함'.
- 3분명 껐는데 또 바뀜 — 머리글을 올리면서 '변경된 유형' 단계가 저절로 붙었습니다. 적용된 단계에서 지웁니다.
- 4금액 합계가 0 이거나 안 나옴 — 모든 열이 텍스트라서입니다. 계산할 열만 정수·10진수로 바꿉니다.
엑셀에서 정리한 표를 다시 CSV 로 내보내야 한다면 JSON CSV 변환 가이드에서 시험한 대로 CSV UTF-8(쉼표로 분리) 로 저장하면 BOM 이 붙어 다른 프로그램에서도 한글이 안전합니다. 다만 그 CSV 를 엑셀에서 다시 더블클릭하면 0 이 또 사라지니, 엑셀에서 볼 땐 xlsx 원본을 쓰세요.
자주 묻는 질문
Q. CSV 를 엑셀 파일(xlsx)로 바꾸려면 어떻게 하나요?
데이터 → 텍스트/CSV에서 로 가져와 형식을 확인한 뒤 다른 이름으로 저장 → Excel 통합 문서(xlsx)로 저장합니다. 더블클릭으로 연 상태에서 바로 저장하면 이미 바뀐 값(123, 끝자리 0 인 카드번호, 날짜)이 그대로 저장됐습니다(실측).
Q. CSV 를 열면 한글이 깨져요. 파일이 망가진 건가요?
아니요. 시험에선 BOM 없는 UTF-8 CSV 만 더블클릭할 때 깨졌고, 같은 파일을 텍스트/CSV에서 로 가져오자 파일 원본이 65001(UTF-8)로 잡혀 정상으로 보였습니다.
Q. 이미 0 이 사라진 칸을 되살릴 수 있나요?
엑셀 안에서는 안 됩니다. 마이크로소프트 문서도 이미 바뀐 값은 서식을 바꿔도 돌아오지 않는다고 설명합니다. 원본 CSV 를 방법 2 로 다시 가져오세요.
Q. 자동 데이터 변환 옵션만 끄면 되지 않나요?
더블클릭으로 열 때는 도움이 됩니다(마이크로소프트 365·엑셀 2024). 다만 문서상 파워 쿼리 가져오기에는 직접 적용되지 않고, 하이픈이 든 값은 여전히 날짜가 될 수 있습니다. 이 글에서는 옵션을 바꿔 시험하지 않았습니다.
Q. 확장자를 .txt 로 바꿔서 여는 방법은요?
마이크로소프트 지원 문서는 .csv 를 .txt 로 바꿔 열면 텍스트 가져오기 마법사가 떠서 열마다 형식을 정할 수 있다고 안내합니다. 이 글에서는 시험하지 않았습니다.
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨 주세요.
댓글은 회원만 쓸 수 있습니다.
광고·욕설·비방·개인정보·불법 내용이 담긴 댓글은 숨기거나 지웁니다. 광고·홍보 글이나 혐오·비방 글을 올린 회원은 강제 탈퇴되고 쓴 글이 모두 지워집니다. 댓글은 닉네임과 함께 공개됩니다. 개인정보처리방침