JSON을 Excel로 변환: 다양한 워크플로우를 위한 5가지 방법

2026-03-13 07:37:39 zaki zou

JSON을 Excel로 변환: 전체 가이드

JSON은 구조화된 데이터를 저장하고 교환하는 데 가장 널리 사용되는 형식 중 하나입니다. API, 구성 파일 및 많은 최신 응용 프로그램에서 JSON을 사용하여 데이터 세트를 나타냅니다.

그러나 JSON은 비기술적인 사용자와 분석, 보고 또는 공유하기에 항상 편리한 것은 아닙니다. 많은 경우 JSON 데이터를 Excel 스프레드시트로 변환하면 정보를 더 쉽게 보고, 필터링하고, 정렬하고, 표시할 수 있습니다.

이 가이드에서는 코드 없는 솔루션부터 프로그래밍 방식 접근 방식에 이르기까지 JSON을 Excel로 변환하는 다섯 가지 실용적인 방법을 보여줍니다.

다루는 방법 개요:

JSON 구조 준비

JSON을 Excel로 변환하기 전에 JSON 데이터의 구조가 변환 프로세스에 어떤 영향을 미치는지 이해하는 것이 중요합니다. 많은 변환 도구는 특정 형식을 가정하며, 구조가 일치하지 않으면 예기치 않은 결과나 오류가 발생할 수 있습니다.

루트 배열 대 루트 객체

많은 JSON-to-Excel 도구는 데이터가 다음과 같은 객체의 루트 배열이기를 기대합니다.

[
  {"id":1,"name":"Alice"},
  {"id":2,"name":"Bob"}
]

이 구조는 Excel 테이블에 자연스럽게 매핑됩니다.

id name
1 Alice
2 Bob

각 객체는 행이 되고 키는 열 머리글이 됩니다.

그러나 많은 실제 API 및 데이터 세트는 배열을 루트 객체 내에 래핑합니다.

{
  "employees":[
    {"id":1,"name":"Alice"},
    {"id":2,"name":"Bob"}
  ]
}

이 경우 실제 테이블 형식 데이터 세트는 "employees" 속성 내에 저장됩니다.

일부 도구가 루트 객체에서 실패하는 이유

일부 변환기는 테이블 형식 데이터 세트를 포함하는 속성을 자동으로 결정할 수 없습니다. JSON 파일이 배열로 직접 시작될 것으로 예상합니다.

데이터가 루트 객체 내에 래핑되면 이러한 도구는 파일을 올바르게 구문 분석하지 못하거나 빈 결과를 생성할 수 있습니다.

따라서 변환을 수행하기 전에 관련 배열을 수동으로 추출해야 할 수 있습니다. 예를 들어, 배열이 온라인 변환기의 루트 요소가 되도록 JSON을 재구성하거나 코드에서 직접 액세스할 수 있습니다.

Python에서 배열에 액세스하기

예를 들어, 데이터 세트가 "employees" 아래에 저장된 경우 다음과 같이 로드하고 추출할 수 있습니다.

data = json.load(f)["employees"]

이 단계가 끝나면 data객체 목록이 되며, 이를 행과 열로 Excel에 쉽게 쓸 수 있습니다.

방법 1 — Excel 파워 쿼리 (코드 없음)

Microsoft Excel이 이미 설치되어 있는 경우 코드를 작성하지 않고도 JSON 데이터를 직접 가져올 수 있습니다. Excel의 파워 쿼리 기능을 사용하면 사용자가 JSON 파일을 로드하고 자동으로 테이블 형식으로 변환할 수 있습니다. 이 접근 방식은 스프레드시트 환경 내에서 JSON 데이터를 빠르게 보려는 분석가나 비즈니스 사용자에게 이상적입니다.

단계

  1. 컴퓨터에서 Microsoft Excel을 시작합니다.
  2. Excel 상단 메뉴에 있는 데이터 탭을 클릭합니다.
  3. 데이터 탭에서 데이터 가져오기로 이동한 다음 파일에서를 선택하고 드롭다운 메뉴에서 JSON에서를 선택합니다.
  4. JSON 파일에서 데이터 가져오기

  5. 메시지가 표시되면 JSON 파일을 찾아 선택한 다음 가져오기를 클릭합니다.
  6. 파워 쿼리 편집기가 시작됩니다.
  7. 파워 쿼리 편집기

  8. 파일이 레코드 목록으로 열리는 경우:

    • 테이블로를 클릭하여 목록을 테이블 형식으로 변환합니다.
    • 목록을 테이블로 변환

    • 그런 다음 열 머리글의 확장 (⇄) 아이콘을 클릭하여 열 이름을 표시합니다. 열에 여전히 "목록" 또는 "레코드"가 표시되면 확장 아이콘을 다시 클릭하여 더 평탄화합니다.
    • 목록 또는 레코드 확장

    • 테이블에 포함할 필드를 선택할 수 있는 대화 상자가 나타납니다. 필요한 필드를 선택하고 더 깔끔한 머리글을 위해 "접두사로 원래 열 이름 사용"을 선택 취소한 다음 확인을 클릭합니다.
    • 필요한 필드 선택

  9. 닫기 & 로드를 클릭하여 구조화된 데이터를 Excel 워크시트로 가져옵니다.
  10. 워크시트에 구조화된 데이터 로드

  11. 데이터가 나중에 사용할 수 있도록 보존되도록 Excel 파일을 .xlsx 형식으로 저장합니다.

이 방법을 사용하는 경우

프로그래밍보다 시각적 인터페이스를 선호하는 사용자 및 소규모 데이터 세트에 가장 적합합니다.

방법 2 — 온라인 JSON 변환기 (빠른 일회성)

온라인 JSON 변환기는 JSON 파일을 Excel 스프레드시트로 변환하는 가장 빠른 방법 중 하나를 제공합니다. 이러한 도구는 일반적으로 파일 업로드만 필요하며 다운로드 가능한 Excel 파일을 자동으로 생성합니다. jsontoexcel.net에서 제공하는 것과 같은 플랫폼은 소프트웨어를 설치하지 않고도 몇 초 만에 변환을 완료할 수 있습니다.

단계

  1. JSON-to-Excel 변환기 웹사이트를 엽니다.
  2. JSON 데이터를 텍스트 편집기에 직접 복사하여 붙여넣거나 컴퓨터에서 파일을 업로드합니다.
  3. Json 데이터를 붙여넣거나 온라인 변환기로 Json 로드

  4. Excel로 변환 버튼을 클릭하여 변환 프로세스를 시작합니다.
  5. 생성된 Excel 파일을 다운로드합니다.
  6. 생성된 Excel 파일 다운로드

중요 참고 사항

대부분의 온라인 변환기는 객체의 루트 배열을 예상합니다. 그렇지 않으면 자동으로 실패하거나 예기치 않은 결과가 발생할 수 있습니다. 이 형식은 Excel로 가장 안정적으로 변환됩니다.

이 방법을 사용하는 경우

빠른 일회성 변환 또는 샘플 데이터 세트 테스트에 가장 적합합니다.

방법 3 — pandas를 사용한 Python (자동화 친화적)

개발자와 데이터 엔지니어에게 Python은 JSON-to-Excel 변환을 자동화하는 강력한 방법을 제공합니다. 인기 있는 데이터 분석 라이브러리인 pandas는 JSON 파일을 쉽게 로드하고 구조화된 DataFrame으로 변환한 다음 결과를 Excel로 내보낼 수 있습니다. 이 방법은 변환을 스크립트, ETL 워크플로 또는 자동화된 보고 파이프라인에 통합해야 할 때 특히 유용합니다.

종속성 설치

pip install pandas openpyxl

JSON을 Excel로 변환

import pandas as pd
import json

with open("employees.json") as f:
    data = json.load(f)["employees"]

df = pd.json_normalize(data)
df.to_excel("output.xlsx", index=False)

Output:

pandas로 생성된 일반 Excel 시트

이 방법을 사용하는 경우

자동화된 데이터 처리, 분석 워크플로 및 대규모 데이터 세트에 이상적입니다.

방법 4 — Spire.XLS를 사용한 Python (서식이 지정된 Excel 보고서)

목표가 잘 서식 지정된 Excel 보고서를 생성하는 것이라면 Python은 Spire.XLS와 함께 작동하여 프로그래밍 방식으로 스프레드시트를 만들 수 있습니다. 간단한 데이터 내보내기 라이브러리와 달리 Spire.XLS는 Excel 서식에 대한 광범위한 제어를 제공하며, 글꼴, 색상, 정렬 및 열 크기 조정을 포함합니다. 따라서 이해 관계자와 공유할 준비가 된 전문적인 스프레드시트를 생성하는 데 적합합니다.

라이브러리 설치

pip install spire.xls

예제 코드

다음 스크립트는 JSON 직원 데이터를 읽고, 열 머리글을 동적으로 생성하고, 행을 Excel에 쓰고, 머리글 스타일 지정, 행 색상 교대 및 자동 맞춤 열과 같은 서식을 적용합니다.

import json
from spire.xls import *

# Load JSON data
with open('C:/Users/Administrator/Desktop/employees.json') as f:
    data = json.load(f)["employees"]

if not data:
    raise ValueError("JSON data is empty!")

# Create workbook and worksheet
workbook = Workbook()
sheet = workbook.Worksheets[0]

# Extract headers dynamically
headers = list(data[0].keys())
num_cols = len(headers)

# Write headers
for col, header in enumerate(headers, start=1):
    sheet.Range[1, col].Value = header

# Write rows
for row_index, item in enumerate(data, start=2):
    for col_index, key in enumerate(headers, start=1):
        value = item.get(key, "")
        sheet.Range[row_index, col_index].Value = str(value) if value is not None else ""

# Header formatting
header_row = sheet.Range[1, 1, 1, num_cols]
header_row.RowHeight = 30
header_style = header_row.Style
header_style.Font.FontName = "Times New Roman"
header_style.Font.Size = 16
header_style.Font.Color = Color.get_White()
header_style.Color = Color.FromArgb(255, 128, 128, 128)
header_style.HorizontalAlignment = HorizontalAlignType.Center
header_style.VerticalAlignment = VerticalAlignType.Center

# Data formatting
locatedRange = sheet.AllocatedRange
for rowNum in range(2, locatedRange.RowCount + 1):
    data_row = sheet.Range[rowNum, 1, rowNum, num_cols]
    data_row.RowHeight = 20
    row_style = data_row.Style
    row_style.Font.FontName = "Times New Roman"
    row_style.Font.Size = 13
    row_style.HorizontalAlignment = HorizontalAlignType.Center
    row_style.VerticalAlignment = VerticalAlignType.Center
    row_style.Color = Color.get_White() if rowNum % 2 == 0 else Color.FromArgb(255, 245, 245, 245)

# Auto-fit columns
extra_width = 3
for col in range(1, num_cols + 1):
    sheet.AutoFitColumn(col)
    current_width = sheet.Columns[col - 1].ColumnWidth
    sheet.Columns[col - 1].ColumnWidth = current_width + extra_width

workbook.SaveToFile("JsonToExcel.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Output:

Spire.XLS로 생성된 잘 서식 지정된 Excel 시트

이 방법을 사용하는 경우

자동화된 보고서 생성, 정확한 Excel 서식이 필요한 응용 프로그램 및 Excel 파일이 최종 결과물인 워크플로에 가장 적합합니다.

관심 있을 만한 다른 글: Python에서 JSON을 Excel로/Excel에서 JSON으로 변환 – 예제가 포함된 전체 가이드

방법 5 — SheetJS를 사용한 Node.js (JavaScript 워크플로)

JavaScript 개발자는 SheetJS와 같은 라이브러리를 사용하여 JSON을 Excel로 변환할 수 있습니다. 이 라이브러리는 JSON 객체를 스프레드시트 워크시트로 변환하고 .xlsx 파일에 쓰는 유틸리티를 제공합니다. Node.js 환경에서 잘 작동하기 때문에 백엔드 서비스 및 데이터 처리 스크립트에서 일반적으로 사용됩니다.

설치

npm install xlsx

예제

const XLSX = require("xlsx");
const fs = require("fs");

const data = JSON.parse(fs.readFileSync("employees.json")).employees;

const worksheet = XLSX.utils.json_to_sheet(data);
const workbook = XLSX.utils.book_new();

XLSX.utils.book_append_sheet(workbook, worksheet, "Employees");
XLSX.writeFile(workbook, "output.xlsx");

Output:

SheetJS로 생성된 일반 Excel 시트

이 방법을 사용하는 경우

웹 응용 프로그램, Node.js 백엔드 및 JavaScript 기반 자동화 워크플로에 가장 적합합니다.

5가지 방법 빠른 비교

JSON을 Excel로 변환하는 각 방법은 다른 유형의 사용자 및 워크플로에 적합합니다. 일부 접근 방식은 단순성과 속도에 중점을 두는 반면, 다른 접근 방식은 고급 시나리오를 위한 자동화 및 서식 제어를 제공합니다. 아래 표는 가장 적합한 옵션을 선택하는 데 도움이 되도록 주요 차이점을 요약합니다.

방법 기술 수준 자동화 최적 대상 제한 사항
Excel (파워 쿼리) 초급 아니요 빠른 수동 변환 및 데이터 탐색 수동 단계 필요; 반복적인 워크플로에 제한적
온라인 변환기 초급 아니요 일회성 변환 및 빠른 테스트 파일 크기 제한; 잠재적인 개인 정보 보호 문제
pandas를 사용한 Python 중급 데이터 파이프라인, 분석 및 대규모 데이터 세트 고급 Excel 서식에 대한 제한된 제어
Spire.XLS를 사용한 Python 중급 전문적인 Excel 보고서 생성 추가 라이브러리 설정 필요
SheetJS를 사용한 Node.js 중급 JavaScript 응용 프로그램 및 백엔드 자동화 Node.js 환경 필요

JSON을 Excel로 변환하기 위한 모범 사례

JSON을 Excel로 변환하는 것은 간단해 보일 수 있지만, 실제 데이터 세트에는 종종 중첩된 구조, 일관성 없는 키 또는 대량의 데이터가 포함됩니다. 몇 가지 모범 사례를 따르면 안정적이고 읽기 쉬운 결과를 보장하는 데 도움이 될 수 있습니다.

  1. 중첩된 JSON 구조 평탄화
  2. 많은 JSON 파일에는 중첩된 객체나 배열이 포함되어 있습니다. JSON은 계층적 데이터를 지원하지만 Excel은 평평한 테이블 형식 구조에서 가장 잘 작동합니다.

    예를 들어, 다음과 같은 JSON:

    {
      "id": 1,
      "name": "Alice",
      "address": {
        "city": "San Francisco",
        "zip": "94105"
      }
    }
    

    다음과 같이 평탄화해야 할 수 있습니다.

    id name address.city address.zip
    1 Alice San Francisco 94105

    pandas와 같은 라이브러리는 json_normalize()와 같은 도구를 제공하여 중첩된 데이터를 자동으로 평탄화합니다. 더 복잡한 JSON으로 작업할 때 Excel로 내보내기 전에 구조를 전처리하면 종종 더 깔끔한 결과를 얻을 수 있습니다.

  3. 파일 크기 및 성능 고려

    대규모 JSON 데이터 세트에는 수천 또는 수백만 개의 레코드가 포함될 수 있으며, 이는 Excel로 직접 변환할 때 성능 문제를 일으킬 수 있습니다. 몇 가지 팁:

    • 대용량 파일에는 프로그래밍 방식 솔루션(Python 또는 Node.js)을 사용합니다.
    • 필요한 경우 데이터를 일괄 처리합니다.
    • 매우 큰 데이터 세트를 Excel에 직접 로드하지 마십시오.

    Excel 자체에는 제한(예: 시트당 약 1,048,576개 행)이 있으므로 매우 큰 데이터 세트는 여러 워크시트로 분할해야 할 수 있습니다.

  4. 복잡한 데이터에 여러 시트 사용
  5. 일부 API는 다음과 같이 여러 관련 배열이 있는 JSON을 반환합니다.

    {
      "customers": [...],
      "orders": [...],
      "products": [...]
    }
    

    모든 것을 하나의 워크시트에 강제로 넣는 대신 각 데이터 세트를 별도의 Excel 시트로 내보내는 것을 고려하십시오. 이렇게 하면 원본 데이터의 논리적 구조가 보존되고 분석이 더 쉬워집니다.

  6. 가독성 향상을 위한 서식 적용

    Excel 파일을 동료나 이해 관계자와 공유할 경우 서식을 지정하면 가독성을 크게 향상시킬 수 있습니다.

    유용한 서식 지정 방법은 다음과 같습니다.

    • 굵은 머리글 행
    • 조정된 열 너비
    • 교대 행 색상
    • 일관된 글꼴 및 정렬

    Spire.XLS와 같은 라이브러리를 사용하면 이러한 요소를 프로그래밍 방식으로 제어할 수 있으므로 프레젠테이션 준비가 된 보고서를 자동으로 생성할 수 있습니다.

결론

JSON은 구조화된 데이터를 저장하고 교환하는 데 널리 사용되지만, 비기술적인 사용자와 분석하거나 공유하기에 항상 이상적인 것은 아닙니다. JSON을 Excel로 변환하면 익숙한 스프레드시트 형식으로 데이터를 더 쉽게 읽고, 필터링하고, 구성할 수 있습니다.

간단한 일회성 변환의 경우 Excel이나 온라인 변환기와 같은 도구로 충분한 경우가 많습니다. 그러나 데이터 파이프라인이나 자동화된 보고서로 작업하는 개발자는 출력에 대한 더 큰 유연성과 제어를 제공하는 pandas, Spire.XLS 또는 SheetJS와 같은 프로그래밍 방식 솔루션의 이점을 누릴 수 있습니다.

자주 묻는 질문

Q1. 일부 온라인 변환기가 유효한 JSON을 거부하는 이유는 무엇입니까?

많은 온라인 변환기는 데이터 세트로 객체의 루트 배열을 예상합니다. JSON 파일이 중첩된 배열을 포함하는 루트 객체로 시작하는 경우 도구는 어떤 속성이 테이블을 나타내는지 알 수 없습니다. 파일을 업로드하기 전에 관련 배열을 추출하면 일반적으로 이 문제가 해결됩니다.

Q2. JSON 배열과 JSON 객체의 차이점은 무엇입니까?

JSON 배열은 대괄호 []로 묶인 순서 있는 값 목록이고, JSON 객체는 중괄호 {}로 묶인 키-값 쌍의 모음입니다.

Q3. 중첩된 JSON을 Excel로 어떻게 변환할 수 있습니까?

중첩된 JSON은 종종 Excel로 내보내기 전에 평탄화해야 합니다. pandas와 같은 도구는 중첩된 필드를 열로 자동 확장하는 json_normalize()와 같은 함수를 제공합니다. 또는 데이터를 쓰기 전에 중첩된 객체나 배열을 수동으로 추출할 수 있습니다.

Q4. Excel에서 JSON 파일을 직접 열 수 있습니까?

예. Excel에는 JSON 파일을 가져와서 테이블로 변환할 수 있는 파워 쿼리라는 기능이 포함되어 있습니다. 그러나 이 프로세스는 깔끔한 테이블 형식 데이터 세트를 얻기 위해 중첩된 구조를 수동으로 확장해야 할 수 있습니다.

함께 읽기