XLSX → CSV 변환기

Excel 워크북을 끌어다 놓으면 각 시트를 CSV로 내보낼 수 있어요 — 개별 또는 .zip 으로 한꺼번에. 모든 처리는 브라우저 안에서 진행되며 업로드가 없어요.

스프레드시트를 여기에 놓으세요 또는
  1. XLSX(또는 XLS / XLSM / ODS)를 끌어다 놓거나 "파일 찾아보기"를 누르세요.
  2. 드롭다운에서 시트를 선택하세요.
  3. 한 시트만이라면 "변환 후 다운로드", 워크북 전체라면 "모든 시트 .zip"을 누르세요.
  4. 출력은 RFC 4180 CSV예요 — UTF-8, 콤마 구분, 필요 시 큰따옴표 이스케이프.
어떤 도구인가요?

SheetJS(Apache-2.0 포크)로 Excel 및 OpenDocument 스프레드시트를 읽고, 각 시트를 SheetJS의 sheet_to_csv 로 CSV로 내보내요. 셀 값은 워크북의 네이티브 타입에 따라 텍스트로 변환됩니다 — 숫자는 숫자로, 날짜는 워크북의 표시 형식대로, 수식은 캐시된 계산값으로 표현돼요. 차트, 이미지, 조건부 서식은 CSV가 표현할 수 없어 무시됩니다.

자주 만나는 함정

XLSX → CSV 는 대체로 기계적이지만, 몇몇 패턴은 의외의 결과를 만들어요.

  • 날짜 형식. Excel은 날짜를 일련번호로 저장해요 — 표시 형식은 셀의 숫자 서식에 따라 달라요. CSV는 Excel이 렌더링한 그대로 출력하므로 `2026-04-26`, `4/26/2026`, 또는 일련번호로 나올 수 있어요. ISO 8601 로 강제하려면 내보내기 전에 셀 서식을 바꾸세요.
  • 수식 결과 vs 수식. CSV는 수식을 표현할 수 없어요. 출력은 각 셀의 마지막 저장 시점 캐시된 계산값을 사용해요. 워크북을 수정하고 저장하지 않았다면 캐시가 오래됐을 수 있어요.
  • 병합된 셀. 병합된 셀은 좌상단 값만 출력되고 나머지는 빈 셀이 돼요. 이는 SheetJS 의 기본 동작이며 대부분의 CSV 소비자가 기대하는 방식이에요.
  • 숫자 vs 텍스트. Excel은 셀 타입이 명시적으로 텍스트가 아니면 `00123` 을 숫자 123 으로 저장해요. CSV는 그 타입을 그대로 반영합니다. 앞의 0을 보존하려면 내보내기 전에 셀을 텍스트 서식으로 바꾸세요.
  • 암호화된 XLSX. SheetJS Community 는 비밀번호 보호된 XLSX 를 복호화하지 않아요. Excel 에서 보호 해제 후 저장하고 다시 드롭하세요.
  • 아주 큰 워크북. 약 50 MB 가 넘는 워크북은 파싱 시간이 길고 브라우저 메모리도 압박해요. 더 작게 분할하거나 큰 작업은 명령줄에서 SheetJS 를 직접 사용하세요.
자주 묻는 질문

왜 첫 변환이 느린가요?

SheetJS 는 압축 후 약 190 KB 이며 첫 파일 선택 시 로드돼요. 같은 세션 내 이후 변환은 캐시된 모듈을 재사용하므로 즉시 처리됩니다.

구형 XLS 파일도 지원되나요?

네 — SheetJS Community 는 .xls(BIFF8), .xlsx, .xlsm, .ods 를 파싱해요. 위 형식의 암호화 버전은 지원되지 않아요.

내 로케일의 소수점 구분자를 사용하나요?

아니요 — 출력은 항상 RFC 4180 이며 소수점 `.`, 필드 구분자 `,` 를 사용해요. 유럽식 `;` 구분 CSV 가 필요하면 출력을 후처리하세요.

워크북이 어디론가 업로드되나요?

아니요. 모든 처리는 브라우저 안에서 진행돼요. 스프레드시트는 이 페이지의 SheetJS 가 파싱하며 어떤 서버에도 전송되지 않습니다.

수식은 어떻게 내보내지나요?

CSV 는 수식을 표현할 수 없어서, 출력은 각 셀의 캐시된 계산값을 사용해요. 수식 자체가 필요하면 별도의 내보내기 — Excel 에서 수식 컬럼을 따로 복사 — 가 필요해요.

왜 CSV 가 Excel 에서 보이는 것과 정확히 일치하지 않나요?

Excel 의 표시 레이어는 원시 값 위에 숫자 서식, 조건부 규칙, 로케일 설정을 적용해요. CSV 는 평문이라 그 시각적 스타일링 일부는 의도적으로 사라져요. 셀 내용은 보존되지만 셀의 외관은 보존되지 않아요.