도구
가이드

JSON → Excel 변환기

JSON

SheetJS로 JSON 배열을 Excel .xlsx 통합 문서로 변환해 다운로드합니다.

100% 클라이언트 백엔드 없음

원격 URL은 가져오지 않습니다. JSON을 직접 붙여넣으세요.

입력
출력
이 페이지에서

JSON to Excel 변환기란?#

JSON to Excel 변환기는 표 모양의 JSON 문서(보통 비슷한 객체들의 배열)를 받아 Excel, Google Sheets, LibreOffice에서 열 수 있는 진짜 .xlsx 통합 문서 를 만들어냅니다. 각 객체는 행이 되고, 각 최상위 키는 열이 되며, 시트의 첫 행이 헤더입니다. 출력은 이름만 바꾼 CSV가 아니라 진짜 이진 스프레드시트 파일입니다.

JSON을 쓰는 시스템(API, 로그, NoSQL 내보내기)과 스프레드시트로 일하는 사람 사이의 간극을 잡아줍니다. 백엔드가 천 건의 레코드를 JSON으로 쏟아낼 수 있지만, 인간 분석가는 피벗·필터·차트를 쓰려면 Excel을 원합니다. 변환기는 실제 데이터가 가져오는 성가심도 처리합니다. 중첩 객체, 일부 행에만 있는 필드, 그리드에 자연스럽게 놓일 자리가 없는 배열 값 필드입니다.

무거운 작업을 하는 관례 두 가지가 있습니다. 중첩 객체는 점 표기 키로 평탄화 됩니다. {"address": {"city": "London"}}은 address.city라는 열이 됩니다. 배열 값 필드(그리고 평탄화를 견딘 객체)는 스프레드시트 셀이 중첩 구조가 아니라 한 값을 담으므로 JSON 텍스트로 셀에 문자열화 됩니다. 결과는 스프레드시트 소프트웨어가 불만 없이 열 수 있는 평면적이고 직사각형인 표입니다.

사용 방법#

  1. 왼쪽 입력 패널에 객체들의 JSON 배열을 붙여넣으세요. 단일 객체나 {"data": [...]}처럼 행을 단일 키 아래 감싼 객체도 받아들여집니다.
  2. 중첩 평탄화 (기본 켜짐)에 체크해서 중첩 객체를 점 표기 열로 펼치세요. 중첩 객체를 단일 셀에 JSON 텍스트로 유지하려면 체크를 끄세요.
  3. 출력 패널은 시트에 들어갈 내용을 탭으로 구분된 미리보기로 보여줍니다. 헤더 행 뒤에 데이터 행이 옵니다. 상태 줄은 내보낸 행 수를 알려줍니다.
  4. .xlsx 다운로드 를 클릭해 통합 문서를 저장하세요. 파일은 브라우저에서 만들어져 직접 다운로드됩니다. 서버는 없습니다.
  5. 예제 는 작은 직원 데이터셋을 불러오고, 지우기 는 양쪽 패널을 초기화하고 다운로드 버튼을 비활성화합니다.

주요 기능#

  • 이름만 바꾼 CSV가 아니라 진짜 .xlsx 파일. 통합 문서는 SheetJS로 만들어져 이진으로 다운로드되므로, Excel이 올바른 열·타입·시트 구조로 네이티브하게 엽니다.
  • 복잡한 데이터에서 안정적인 열 순서. 열은 모든 행의 키의 합집합으로, 처음 보인 순서대로 계산됩니다. 이질적인 행이 열을 밀거나 어긋나게 하지 않습니다. 빠진 필드는 단순히 빈 셀이 됩니다.
  • 점 표기 평탄화. 중첩 객체는 이름 붙은 열(address.city, address.zip)로 펼쳐져 안의 값을 시트에서 개별적으로 필터·정렬할 수 있습니다.
  • 탭으로 구분된 미리보기. 출력 패널은 시트 콘텐츠를 그대로 비춰 다운로드 전에 모양을 확인할 수 있습니다.
  • 순수 클라이언트 사이드. 파싱·평탄화·통합 문서 생성이 모두 브라우저에서 실행됩니다. 데이터는 페이지를 떠나지 않습니다.

실전 예시#

예제 를 불러오면 입력은 세 직원 레코드의 배열입니다.

[
  { "id": 1, "name": "Ada Lovelace", "role": "Engineer",  "salary": 95000,  "skills": ["math", "logic"] },
  { "id": 2, "name": "Bob",         "role": "PM",        "salary": 120000, "skills": ["docs", "plan"] },
  { "id": 3, "name": "Grace",       "role": "Architect", "salary": 150000, "skills": ["systems", "c", "cobol"] }
]

세 행 모두 같은 키를 공유하므로 열은 그 순서대로 id, name, role, salary, skills입니다. skills 필드는 배열이므로 각 셀에 문자열화됩니다. 탭으로 구분된 미리보기는:

id	name	role	salary	skills
1	Ada Lovelace	Engineer	95000	["math","logic"]
2	Bob	PM	120000	["docs","plan"]
3	Grace	Architect	150000	["systems","c","cobol"]

.xlsx 다운로드 를 클릭하면 첫 시트가 이 내용 그대로인 통합 문서를 얻으며, id / name / role / salary / skills가 헤더 행입니다. Excel은 salary를 숫자로(합계·평균 가능), skills는 텍스트로 취급합니다.

salary를 뺀 네 번째 행이 추가되어도 변환기는 다섯 열을 모두 내보내고 해당 셀만 빈칸으로 둡니다. 열이 밀리거나 하위 데이터가 어긋나지 않습니다.

FAQ#

왜 내 중첩 객체가 이름에 점이 있는 열로 바뀌나요?#

중첩 평탄화 옵션입니다. "address": {"city": "London", "zip": "NW1"} 같은 필드는 한 셀에 유용하게 담을 수 없어 address.city와 address.zip 열로 펼쳐집니다. Excel에서 각각 개별적으로 필터·정렬할 수 있습니다. 전체 객체를 단일 address 셀에 JSON 문자열로 유지하려면 옵션을 끄세요.

왜 내 배열이 셀에서 ["math","logic"]으로 표시되나요?#

스프레드시트 셀은 한 값을 담고, JSON 배열은 중첩 구조이므로 JSON 텍스트로 직렬화되어 셀에 그대로 놓입니다. 이렇게 하면 데이터가 무손실입니다. 아무것도 버려지지 않으며 나중에 다시 파싱할 수 있습니다. 각 배열 요소를 자기 행에 두려면 변환 전에 원본 JSON을 재구성하세요(요소마다 한 레코드씩).

행마다 필드가 다릅니다. 열은 어떻게 되나요?#

변환기는 모든 행의 모든 키의 합집합을 처음 나타난 순서대로 취해 헤더로 삼습니다. 해당 필드가 없는 행은 빈 셀을 받습니다. 따라서 manager 필드가 추가된 행을 넣으면 manager 열이 추가될 뿐이고, 이 필드가 없는 행은 빈칸이 되며 이미 있던 것은 아무것도 움직이지 않습니다.

.xlsx를 만들기 위해 내 데이터가 어디로 업로드되나요?#

아니요. 파싱·평탄화·SheetJS 통합 문서 생성은 모두 브라우저 안에서 실행됩니다. 다운로드는 메모리 버퍼에서 만들어져 브라우저의 저장 대화상자로 곧바로 전달됩니다. 백엔드도, 네트워크 요청도 없습니다.