CSV to Excel 변환: CSV를 Excel에서 열면 데이터가 손상되는 이유

발행: (2026년 3월 25일 오전 11:04 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

How Excel corrupts CSV data

Excel이 CSV 파일을 직접 열면 모든 열에 자동 형식 감지를 적용합니다. 확인 대화 상자가 없으며 적용되기 전에 결과를 미리 볼 방법도 없습니다. 가장 흔한 손상 유형은 다음과 같습니다:

  • 선행 0이 제거됨 – 우편번호 073027302가 됩니다. 선행 0이 있는 모든 숫자 식별자는 0을 잃게 됩니다.
  • 날짜가 비날짜에서 생성됨"OCT4"(유전자 이름) 가 10월 4일이 되고, "3-5"는 3월 5일, "1/2"는 1월 2일이 됩니다. 이 문제는 유전체 연구에서 충분히 큰 영향을 미쳐 27개의 인간 유전자가 이름을 바꾸게 만들었습니다.
  • 과학적 표기법 – 신용카드 번호와 같은 긴 숫자(4111111111111111)가 4.11111E+15 로 표시되며, 15자리 이후의 숫자는 0으로 대체됩니다.
  • 유니코드 손상 – ASCII 범위를 벗어나는 문자는 인코딩에 따라 잘못 표시될 수 있습니다. Excel은 로케일에 따라 달라지는 기본 인코딩을 가정합니다.

The correct approach

CSV 데이터를 Excel에 안전하게 가져오려면 원본 데이터 형식을 유지해야 합니다.

Excel에서Data > From Text/CSV(또는 Get Data > From File > From Text/CSV)를 사용합니다. 이 가져오기 마법사는 가져오기 전에 각 열의 데이터 형식을 지정할 수 있게 해 줍니다. 문제가 되는 열은 Text 형식으로 설정하여 정확한 값을 보존합니다.

프로그래밍 방식 변환 – 데이터 형식에 대한 명시적 제어를 제공하는 라이브러리를 사용합니다. Python에서는 pandas가 dtype을 지정하도록 지원합니다:

import pandas as pd

df = pd.read_csv('data.csv', dtype={'zip_code': str, 'product_id': str})
df.to_excel('data.xlsx', index=False)

dtype={'zip_code': str} 매개변수는 해당 열을 텍스트로 처리하도록 강제하여 형식 변환을 방지합니다.

CSV encoding issues

CSV 파일에는 표준 인코딩 선언이 없습니다. 파일은 UTF‑8, Latin‑1, Windows‑1252, 혹은 UTF‑16일 수 있습니다. Excel은 추측을 기반으로 인코딩을 선택하고, 추측이 틀리면 악센트 문자, 통화 기호, 비라틴 문자 등이 깨진 텍스트로 표시됩니다.

가장 안전한 방법은 인코딩을 명확히 아는 것입니다. CSV를 직접 만든 경우 UTF‑8 with BOM(Byte Order Mark)을 사용하십시오. BOM은 파일 시작 부분에 삽입되는 특수 문자로, Excel에게 UTF‑8을 사용하도록 알려 줍니다. BOM이 없으면 서구권 시스템에서는 Excel이 종종 Windows‑1252를 기본값으로 사용합니다.

What proper conversion preserves

잘 수행된 CSV‑to‑Excel 변환은 다음을 보장합니다:

  • CSV에 나타난 모든 데이터를 정확히 보존
  • 가독성을 위한 적절한 열 너비 설정
  • 올바른 인코딩으로 유니코드 문자 보존
  • 기본값을 변경하지 않고 서식(숫자 형식, 날짜 형식) 적용 가능
  • 따옴표로 감싼 필드 처리 정확(따옴표 안의 쉼표는 구분자로 인식되지 않음)
  • 빈 셀 보존(빈 문자열 vs. null)

The converter

Excel을 열거나 코드를 작성하지 않고 빠르게 변환하려면 CSV to Excel converter 를 사용해 보세요. 이 도구는 인코딩 감지를 수행하고, 데이터 형식을 보존하며, 깔끔한 .xlsx 파일을 생성합니다. 데이터 손상, 형식 강제 변환, 유니코드 손상이 없습니다.

0 조회
Back to Blog

관련 글

더 보기 »