본문 바로가기

CSV 파일 열기

파일에 실제로 무엇이 들어 있는지 확인하세요. 앞자리 0은 그대로 남고, 없던 날짜가 생기지 않으며, 구분자와 인코딩은 알아서 찾아 드립니다. 아무것도 저장하지 않습니다.

  • 저장되지 않음
  • 대기열 없음, 기다림 없음
  • 회원가입 없음, 워터마크 없음

사용 방법

1

파일 끌어다 놓기

CSV, TSV, 또는 세미콜론이나 파이프로 구분된 파일 모두 됩니다. 구분자는 자동으로 감지합니다.

2

표로 보기

정렬과 검색이 가능하고 행·열 번호가 표시됩니다. 모든 값은 저장된 그대로 보여 줍니다.

3

필요한 내용 찾기

행을 필터링하고, 원하는 열로 이동하고, 비어 있거나 필드 수가 맞지 않는 셀을 확인하세요.

엑셀이 손대지 못하게 CSV 읽기

엑셀 대신 여기서 CSV를 봐야 하는 이유는, 엑셀이 파일을 열면서 내용을 바꾸기 때문입니다. 우편번호나 계좌번호의 앞자리 0은 열이 숫자처럼 보인다는 이유로 사라집니다. 15자리가 넘는 식별번호는 반올림됩니다. 날짜처럼 보이는 것은 지역 형식으로 바뀌어, 03/05의 의미가 나라마다 달라집니다. SEPT1 같은 유전자 이름은 날짜가 되는데, 이 문제가 워낙 끈질겨서 유전학자들이 유전자 이름을 바꿨을 정도입니다. 여기서는 그런 일이 전혀 일어나지 않습니다. 값은 파일의 바이트가 말하는 그대로 표시됩니다.

CSV에는 사실상 표준이 없어서, 먼저 파일이 어떤 형식인지 알아내야 합니다. 구분자는 쉼표, 세미콜론, 탭 중 하나일 수 있습니다. 유럽 지역에서는 쉼표가 소수점 기호라서 세미콜론으로 내보냅니다. 인코딩은 UTF-8일 수도 있고 예전 코드 페이지일 수도 있는데, 잘못 추측하면 악센트가 있는 이름이 깨진 문자로 바뀝니다. 둘 다 가정하지 않고 감지하므로 실제 내보내기 파일은 거의 모두 처리되며, 감지가 틀리면 막히지 않고 직접 바꿀 수 있습니다.

단순한 뷰어가 실패하는 곳은 따옴표 처리입니다. 따옴표로 감싼 필드에는 쉼표, 줄바꿈, 두 번 쓴 따옴표가 정당하게 들어갈 수 있어서, 주소가 담긴 행은 파일에서 여러 줄에 걸쳐 있어도 하나의 레코드입니다. 쉼표로만 나누는 도구는 바로 이런 행을 망가뜨립니다. 그래서 텍스트 편집기에서는 멀쩡한 파일이 뷰어에서는 이상하게 보이거나, 그 반대가 되기도 합니다.

들쭉날쭉한 파일, 즉 머리글보다 필드가 많거나 적은 행이 있는 파일은 몰래 채우거나 잘라 내지 않고 있는 그대로 보여 줍니다. 필드 수가 맞지 않는 행은 대개 그 위쪽 어딘가의 따옴표 문제에서 비롯된 증상이라, 이를 숨기면 버그도 숨겨지기 때문입니다. 파일 전체를 페이지 안에서 파싱하므로 메모리 사용량은 파일 크기에 비례합니다.

다른 작업이 필요할 때

명령줄에서는 csvkit이 바로 이런 용도로 만들어졌습니다. csvlook은 정렬된 표를 출력하고, csvstat은 모든 열을 요약하며, csvclean은 들쭉날쭉한 행을 찾아 고쳐 줍니다. Miller(mlr --icsv --opprint cat data.csv)는 같은 일을 빠르게 해내고 메모리보다 큰 파일도 처리합니다. 대화형으로 탐색하려면 VisiData를 알아 두세요. 수 GB 파일도 터미널에서 즉시 열고 정렬, 필터, 빈도 집계를 제공합니다.

꼭 엑셀에서 CSV를 열어야 한다면 더블클릭하지 말고 데이터 → 텍스트/CSV에서를 사용하세요. 가져오기 대화상자에서 파싱 전에 각 열의 형식을 지정할 수 있으며, 위와 같은 변환을 막는 확실한 방법은 이것뿐입니다. 더블클릭하면 엑셀에게 추측을 허락하는 셈이고, 엑셀은 자신 있게 추측합니다.

자주 묻는 질문

제 파일이 어딘가에 저장되나요?

아니요. 아무것도 저장하지 않고 보관하지도 않으며, 페이지가 열린 뒤에는 Wi-Fi를 꺼도 작동합니다. CSV는 대개 고객 목록, 내보내기 파일, 재무 보고서이고, 바로 이런 파일이야말로 모르는 사람의 서버에 넘겨서는 안 되는 파일입니다.

엑셀은 왜 제 CSV를 망가뜨리나요?

엑셀은 파일을 열면서 묻지도 않고 변환하기 때문입니다. 00123이라는 제품 코드는 숫자 123이 되고 0은 영영 사라집니다. 5-3 같은 부품 번호는 5월 3일이 됩니다. 긴 주문 번호는 1.23457E+14가 됩니다. 세미콜론으로 구분된 독일식 CSV는 전부 A열에 들어갑니다. 이 중 어느 것도 파일 안에 있던 것이 아니라, 엑셀이 여는 과정에서 한 일입니다. 이 뷰어는 모든 값을 저장된 그대로 텍스트로 보여 주므로, 실제로 받은 내용을 확인할 수 있습니다.

어떤 구분자와 인코딩을 지원하나요?

쉼표, 세미콜론, 탭, 파이프를 지원하며, 확장자가 아니라 파일 내용을 보고 감지합니다. 독일 시스템에서 내보낸 “CSV”는 대개 세미콜론으로 구분되어 있습니다. 인코딩도 감지합니다. BOM이 있거나 없는 UTF-8, UTF-16, 그리고 오래된 시스템이 만드는 Windows-1252/Latin-1 파일을 인식합니다. 인코딩이 틀리면 “é” 자리에 “é”가 보이는데, 페이지에서 인코딩을 바꿀 수 있습니다.

쉼표가 들어간 따옴표 필드도 처리하나요?

네, RFC 4180에 맞게 제대로 처리합니다. 따옴표로 감싼 필드에는 쉼표, 줄바꿈, 이스케이프된 따옴표가 들어갈 수 있으며 세 가지 모두 처리합니다. 따옴표를 무시하고 쉼표로만 나누는 것은 전형적인 CSV 버그로, 문제의 필드 뒤에 있는 모든 열을 소리 없이 밀어 버립니다.

얼마나 큰 파일까지 열 수 있나요?

정해진 크기 제한이 아니라 사용 가능한 메모리에 달려 있습니다. 수 MB가 넘고 수십만 행에 이르는 파일도 문제없습니다. 화면에 보이는 행만 그리므로 큰 파일에서도 스크롤이 부드럽습니다.

편집하거나 변환할 수 있나요?

이 페이지는 읽기 전용입니다. 변환하려면 [CSV 엑셀 변환](csv-to-excel)과 [CSV JSON 변환](csv-to-json) 도구를 사용하세요. 스프레드시트가 앞자리 0을 먹어 버리지 않도록 텍스트로 유지해 줍니다.

참고: 파일 전체를 페이지 안에서 파싱하므로, 아주 큰 내보내기 파일은 크기에 비례해 메모리를 사용합니다. 구분자, 따옴표, 인코딩은 가정하지 않고 감지하므로 실제 내보내기 파일은 거의 모두 처리됩니다. 감지가 틀리더라도 막히지 않고 직접 바꿀 수 있습니다.

내 웹사이트에 이 도구 넣기

블로그, 수업 페이지, 도움말 글 어디에나 무료로 넣을 수 있습니다. 코드 한 줄만 붙여 넣으면 방문자가 페이지에서 바로 사용할 수 있습니다.