viewer.csslab.dev

엑셀 → JSON 변환기

.xlsx·.xls 파일을 열어 JSON·표·Markdown 으로 읽는다. 업로드하지 않는다.

스프레드시트는 어떻게 JSON 이 되나?

엑셀 통합문서는 텍스트 형식이 아니다. .xlsx 는 XML 조각들을 담은 ZIP 압축 파일이라, JSON 이나 CSV 와 달리 붙여넣을 것이 없다 — 한 칸을 읽으려 해도 파일을 열어 풀어야 한다. 이 사이트에서 텍스트 상자 대신 파일을 받는 도구가 이것 하나인 이유다.

이 변환기는 통합문서를 브라우저에서 열고, 시트를 고르게 한 뒤, 그 행들을 객체 배열 JSON 이나 표, Markdown 표로 만든다. 파싱 라이브러리는 실제로 파일을 열 때만 내려받으므로 페이지를 열어 보는 것만으로는 아무 비용도 들지 않는다.

기능

시트를 바꿔도 다시 읽지 않는다
통합문서를 한 번만 파싱해 전체를 들고 있는다. 시트를 바꿀 때마다 20MB 짜리를 다시 파싱하면 그 클릭이 몇 초씩 걸린다.
한 번 읽어 세 가지 출력
API 본문이나 픽스처로 쓸 JSON, 눈으로 읽을 표, README 나 PR 본문에 붙일 Markdown 표.
타입을 주거나, 주지 않거나
숫자와 불리언을 진짜 JSON 타입으로 만들거나, 받는 쪽이 알아서 파싱한다면 모든 칸을 문자열로 남긴다.
파일이 기기 밖으로 나가지 않는다
읽기와 변환이 브라우저에서 돌고 이 페이지에는 백엔드가 없다. 고객 데이터가 든 시트도 컴퓨터를 떠나지 않는다.
스프레드시트가 아닌 파일을 지목한다
CSV 에 .xlsx 확장자만 붙인 경우가 가장 흔한 실패다. 뭉뚱그린 파싱 오류 대신 그 사실을 짚고 CSV 도구를 가리킨다.

사용법

  1. 1

    파일을 연다

    .xlsx 나 .xls 파일을 페이지에 끌어다 놓거나 골라서 연다. 20MB 까지 읽는다.

  2. 2

    시트를 고른다

    시트가 여럿이면 선택기가 나온다. 고르지 않으면 첫 시트를 쓴다.

  3. 3

    헤더 줄을 확인한다

    "첫 줄이 헤더" 를 켜 두어야 JSON 키가 열 이름에서 나온다.

  4. 4

    결과를 복사한다

    JSON·표·Markdown 을 오가며 필요한 것을 복사한다.

엑셀의 날짜는 숫자이고, 그중 하루는 존재하지 않는다

엑셀에서 날짜는 1899년 12월 30일부터 센 날짜 수로 저장된다. 날짜 자체가 아니다. 45292 는 2024년 1월 1일이다. 그 칸이 날짜로 보이는지는 표시 형식이 정하는데, 표시 형식은 값과 따로 산다 — 화면에서 날짜 열로 보이던 것이 정수 뭉치로 들어올 수 있고, 숫자만 봐서는 원래 의도를 되살릴 방법이 없다.

기준일이 하루 어긋난 데에는 이제 되돌릴 수 없는 이유가 있다. 엑셀은 1900년을 윤년으로 치고 1900년 2월 29일을 받아들인다. 존재한 적 없는 날이다. 로터스 1-2-3 이 먼저 가진 버그였고 엑셀이 호환을 위해 의도적으로 따라 했으며, 그 뒤로 유지되고 있다. 그 지점 이후의 모든 날짜가 하루를 더 안고 있어서, 기준일이 1899년 12월 31일이 아니라 30일이 된다.

실무적으로는 이렇다. 날짜 열은 믿기 전에 확인한다. 다섯 자리 정수로 들어왔다면 위 기준일로 받는 쪽에서 변환하고, 1900년 3월 이전 날짜는 하루가 어긋나 있다는 것을 염두에 둔다.

자주 묻는 질문

엑셀 파일을 JSON 으로 어떻게 바꾸나?

.xlsx 파일을 여기서 열고 헤더 줄을 켜 두면 행마다 객체 하나씩, 키는 열 이름에서 가져온 배열이 나온다. 대부분의 API 와 테스트 픽스처가 기대하는 모양이다.

스프레드시트가 어디로 업로드되나?

아니다. 파일은 브라우저에서 읽고 이 페이지에는 백엔드가 없다. 아무것도 전송되지 않는다 — 고객 명단이나 급여 시트를 다룰 때 갈리는 지점이 이것이다.

날짜가 45292 같은 숫자로 나온다

엑셀이 날짜를 그렇게 저장하기 때문이다. 아래 절을 보라 — 날짜 칸은 날짜가 아니라 날짜 수이고, 어떤 칸이 날짜인지 파일이 늘 말해 주지도 않는다.

.xlsx 파일이 안 열린다

이름만 바꾼 CSV 일 가능성이 가장 크다. 진짜 .xlsx 는 ZIP 압축 파일인데, 확장자만 바꾼 CSV 는 여전히 평문이라 풀 수가 없다. 그런 파일은 CSV 도구로 열면 제대로 읽힌다.

시트가 여러 개인 통합문서도 되나?

된다. 시트 목록이 나오고 오갈 수 있다. 통합문서는 한 번만 파싱하므로 전환이 즉시다.

파일 크기 제한은?

20MB 다. 그보다 크면 브라우저가 압축을 풀고 파싱하다 멈추는 일이 잦고, 멈춘 탭은 분명한 제한보다 나쁘다.

.xls 도 되나, .xlsx 만 되나?

둘 다 열린다. 서로 다른 형식이지만 — .xls 는 예전 이진 형식, .xlsx 는 오피스 2007 부터의 ZIP·XML 형식 — 미리 변환할 필요는 없다.

이 도구가 따르는 규격

함께 쓰는 도구