CSV 파일 나누기 사용 방법
- 1CSV, TSV, TXT 파일을 끌어다 놓으세요(최대 2GB). 인코딩과 구분자를 알아내고, 처음 몇 행을 보여 준 뒤 전체 행 수를 셉니다.
- 2나누는 기준을 고르세요. 파일당 행 수, 만들 파일 개수, 파일 하나의 최대 용량 중 하나입니다.
- 3첫 행이 열 이름이면 '첫 행은 제목 행'을 켜 두세요. 모든 파일 맨 위에 복사됩니다.
- 4나눈 파일을 엑셀에서 열 계획이라면 'UTF-8 BOM 추가'를 켜 두세요. 한글이 깨지지 않습니다.
- 5나눠서 ZIP으로 받기를 누르세요. 파일 이름은 원래 이름 뒤에 -001, -002가 붙고, 파일마다 몇 행이 들어갔는지 목록으로 보여 줍니다.
CSV를 나눠야 하는 흔한 경우
- 엑셀에서 끝까지 안 열릴 때: 엑셀 시트 하나에는 1,048,576행까지만 들어갑니다. 그보다 긴 CSV를 열면 "파일이 완전히 로드되지 않았습니다"라는 메시지와 함께 뒷부분이 잘립니다.
- 업로드 용량이나 행 수 제한이 있을 때: 쇼핑몰 대량 등록, 문자 발송, CRM 가져오기처럼 한 번에 올릴 수 있는 크기를 정해 둔 화면이 많습니다.
- 메일 첨부 한도를 넘을 때: 일정 용량을 넘으면 대용량 첨부로 바뀌거나 보내지지 않으니, 용량 기준으로 나눠 여러 통에 나눠 보내면 됩니다.
- 여러 사람이 나눠 작업할 때: 고객 명단이나 검수 목록을 사람 수만큼 똑같이 나누면 편합니다.
세 가지 나누는 방식
파일당 행 수는 제목 행을 빼고 데이터 행만 셉니다. 10,000으로 정하면 파일마다 제목 행 1줄과 데이터 10,000행이 들어갑니다. 1,000,000 버튼은 엑셀 한계(1,048,576행)를 고려해 넣어 둔 값으로, 이렇게 나누면 모든 파일이 엑셀에서 끝까지 열립니다.
파일 개수는 전체 행 수를 다 센 뒤에 행을 고르게 나눕니다. 예를 들어 1,941,631행을 7개로 나누면 277,376행짜리 6개와 277,375행짜리 1개가 됩니다.
최대 용량은 제목 행과 BOM까지 포함한 실제 바이트 수로 계산하며, 다음 행을 넣으면 한도를 넘게 될 때 새 파일을 시작합니다. 100MB 파일을 9.5MB 기준으로 나눠 본 시험에서 가장 큰 파일은 9,961,470바이트로, 한도인 9,961,472바이트를 넘지 않았습니다. 행 하나가 혼자서 한도보다 큰 경우에만 그 행이 든 파일이 한도를 넘을 수 있습니다.
상황별 설정 예시
어떤 값을 넣어야 할지 망설여진다면 아래 예를 참고하세요.
| 상황 | 설정 | 결과 |
|---|---|---|
| 주문 내역 300만 행을 엑셀에서 전부 보고 싶다 | 파일당 행 수 1,000,000 | 100만 행짜리 파일 3개. 모두 엑셀에서 끝까지 열립니다. |
| 회원 명단을 상담원 5명에게 똑같이 나눠 주고 싶다 | 파일 개수 5 | 행 수가 거의 같은 파일 5개. 마지막 파일만 몇 행 적을 수 있습니다. |
| 업로드 화면이 파일당 10MB까지만 받는다 | 최대 용량 10MB | 제목 행을 포함해 10MB를 넘지 않는 파일 여러 개 |
| 문자 발송 화면이 한 번에 1,000명까지만 받는다 | 파일당 행 수 1,000 | 제목 행 + 1,000행짜리 파일 여러 개 |
파일 개수 방식은 전체 행 수를 다 센 다음에 쓸 수 있습니다. 파일을 넣으면 바로 세기 시작하고, 파일 정보 줄에 진행률과 최종 행 수가 표시됩니다. 버튼 위의 안내 문장에서 파일이 몇 개 나오고 파일마다 몇 행이 들어가는지 미리 확인할 수 있습니다.
한글 깨짐과 인코딩
엑셀은 CSV를 더블클릭해 열 때 인코딩을 추측하는데, BOM이 없는 UTF-8 파일은 한글이 깨진 채로 열리는 경우가 많습니다. 'UTF-8 BOM 추가'를 켜 두면 나눈 파일마다 맨 앞에 BOM 3바이트가 들어가 엑셀이 UTF-8로 제대로 읽습니다. 데이터베이스 가져오기처럼 BOM을 싫어하는 프로그램에 넣을 파일이라면 꺼 두세요.
은행 거래 내역이나 오래된 프로그램에서 받은 CSV는 대부분 CP949(EUC-KR)로 저장되어 있습니다. 이런 파일은 인코딩을 바꾸지 않고 원래 바이트 그대로 나누기 때문에, 원본이 엑셀에서 잘 열렸다면 나눈 파일도 똑같이 열립니다. 이때는 BOM 옵션이 꺼진 채로 잠깁니다. 엑셀의 '유니코드 텍스트'로 저장한 UTF-16 파일은 받지 않으니, CSV UTF-8 형식으로 다시 저장해서 넣어 주세요.
따옴표 안의 줄바꿈도 그대로
메모장에서 줄 수를 세어 자르면, 주소나 메모 칸처럼 값 안에 줄바꿈이 들어 있는 행이 둘로 쪼개져 파일이 망가집니다. 이 도구는 CSV 규칙을 따라 큰따옴표 안의 줄바꿈은 값의 일부로 보고, 그런 행은 통째로 한 파일에 넣습니다. 따옴표 안의 쉼표, 두 번 겹친 따옴표("")도 손대지 않습니다.
윈도우(CRLF), 맥·리눅스(LF), 옛 맥(CR) 줄바꿈을 모두 알아보고, 줄바꿈 문자를 바꾸지 않고 그대로 복사합니다. 완전히 빈 줄은 빼고, 몇 줄을 뺐는지 결과에 표시합니다. 행 경계만 찾고 칸은 나누지 않으므로 쉼표, 세미콜론, 탭, 세로선 어떤 구분자를 써도 똑같이 동작합니다.
얼마나 큰 파일까지 되나요
파일을 한꺼번에 메모리에 올리지 않고 8MB씩 읽으면서 바로 ZIP에 압축해 넣습니다. 그래서 필요한 메모리는 대략 완성된 ZIP 크기 정도입니다.
직접 시험한 결과, 쉼표와 따옴표와 여러 줄짜리 값이 섞인 100MB UTF-8 CSV(1,941,631행)를 컴퓨터의 크롬 계열 브라우저에서 약 2초 만에 셌고, 4개로 나누는 데 약 9초가 걸렸습니다. 나눈 파일을 표준 CSV 해석기로 하나씩 다시 읽어 원본과 한 행씩 비교했고, 제목 행과 모든 행의 내용과 순서가 같았습니다.
올릴 수 있는 파일은 2GB까지이고, 결과 ZIP은 4GB를 넘을 수 없습니다. 휴대폰은 메모리가 적어 수백 MB짜리 파일은 실패할 수 있으니 큰 파일은 컴퓨터에서 작업하세요.
문제가 생겼을 때
- "닫히지 않은 큰따옴표" 경고가 떠요. 데이터 안에 짝이 맞지 않는 "가 있습니다. 27" 모니터처럼 따옴표로 감싸지 않은 칸에 인치 기호가 들어간 경우가 대표적입니다. 그 뒤의 내용이 한 칸으로 묶여 행 수가 터무니없이 적게 나오니, 원본을 고치거나 모든 칸을 따옴표로 감싸 다시 내보내세요.
- 미리보기에서 모든 값이 한 칸에 몰려 보여요. 처음 몇 줄만으로 구분자를 알아내지 못한 경우입니다. 미리보기에만 영향이 있고, 나누기는 행 단위라 결과 파일은 정상입니다.
- 예상보다 파일이 하나 적어요. 제목 행은 데이터로 세지 않고 빈 줄도 빼기 때문입니다. 제목 포함 1,001줄인 파일은 데이터가 1,000행이라 1,000행 기준이면 파일 하나가 됩니다.
- 엑셀에서 열었더니 우편번호 앞 0이 사라졌어요. 나누기는 값을 바꾸지 않습니다. 엑셀이 CSV를 열면서 바꾼 것이니, CSV 엑셀 변환으로 xlsx로 바꿔 열면 0이 그대로 남습니다.
함께 쓰면 좋은 도구
자주 묻는 질문
나눈 파일마다 제목 행이 들어가나요?
네. '첫 행은 제목 행'이 켜져 있으면 원본의 첫 줄을 모든 파일 맨 위에 그대로 복사합니다. 열 이름이 없는 파일이면 꺼 두세요.
엑셀에서 열 수 있게 나누려면 몇 행으로 해야 하나요?
엑셀 시트 하나에는 1,048,576행까지 들어가므로 파일당 행 수에서 1,000,000을 고르면 됩니다. 제목 행을 더해도 한도를 넘지 않습니다.
나눈 CSV를 엑셀에서 열면 한글이 깨져요.
UTF-8 파일이라면 'UTF-8 BOM 추가'를 켜고 다시 나누세요. 원본이 CP949라면 인코딩을 그대로 유지하므로 원본과 같은 방식으로 열립니다.
파일이 서버로 올라가나요?
아니요. 파일은 브라우저 안에서 읽고 나누며 ZIP도 내 기기에서 만들어집니다. 고객 명단이나 주문 내역 같은 개인정보가 든 파일도 밖으로 나가지 않습니다.
값 안에 줄바꿈이 있는 행도 제대로 나뉘나요?
네. 큰따옴표 안의 줄바꿈은 값의 일부로 처리하므로 그런 행이 두 파일로 쪼개지지 않습니다.
용량 기준으로 나눌 수 있나요?
네. '최대 용량'을 고르고 MB 단위로 한도를 넣으면 제목 행을 포함한 각 파일이 그 용량을 넘지 않게 나눕니다.