Trang chủHướng dẫnChuyển đổi Excel sang JSON bằng Python

Chuyển đổi Excel sang JSON bằng Python

CyStack blog 3 phút để đọc
CyStack blog15/09/2025
Locker Avatar

Chris Pham

Technical Writer

Locker logo social
Reading Time: 3 minutes

Chuyển đổi Excel sang JSON bằng Python

Trong hướng dẫn này, chúng ta sẽ cùng tìm hiểu 2 module Python để chuyển đổi Excel sang JSON:

  • excel2json-3
  • Pandas

Chuyển đổi Excel sang JSON bằng module excel2json-3

Đây là một module rất đơn giản để chuyển đổi tệp Excel thành tệp JSON. Nội dung từ sheet Excel được chuyển thành chuỗi JSON và lưu trong tệp. Tên tệp JSON được lấy từ tên sheet Excel.

Ví dụ, nếu có 2 sheet tên là “Numbers” và “Cars”, các tệp JSON sẽ được đặt tên tương ứng là Numbers.jsonCars.json.

Module này hỗ trợ chuyển đổi cả định dạng .xls.xlsx. Chúng ta có thể đọc tệp Excel từ hệ thống file hoặc từ URL. Cài đặt module này bằng lệnh PIP:

$ pip install excel2json-3

Trong ví dụ này, chúng ta có một tệp Excel tên records.xlsx chứa 3 sheet.

Chuyển đổi Excel sang JSON bằng Python

Ví dụ tệp Excel chuyển sang JSON bằng Python

Dưới đây là script để chuyển đổi tệp Excel này thành các tệp JSON:

import excel2json

excel2json.convert_from_file('records.xlsx')

Script này sẽ tạo ra 3 tệp JSON.

Employees.json

[
    {
        "EmpID": 1.0,
        "EmpName": "Pankaj",
        "EmpRole": "CEO"
    },
    {
        "EmpID": 2.0,
        "EmpName": "David Lee",
        "EmpRole": "Editor"
    },
    {
        "EmpID": 3.0,
        "EmpName": "Lisa Ray",
        "EmpRole": "Author"
    }
]

Cars.json

[
    {
        "Car Name": "Honda City",
        "Car Model": "City",
        "Car Maker": "Honda",
        "Car Price": "20,000 USD"
    },
    {
        "Car Name": "Bugatti Chiron",
        "Car Model": "Chiron",
        "Car Maker": "Bugatti",
        "Car Price": "3 Million USD"
    },
    {
        "Car Name": "Ferrari 458",
        "Car Model": 458.0,
        "Car Maker": "Ferrari",
        "Car Price": "2,30,000 USD"
    }
]

Numbers.json

[
    {
        "1.0": 3.0,
        "2.0": 4.0
    },
    {
        "1.0": "N1",
        "2.0": "N2"
    },
    {
        "1.0": 5.0,
        "2.0": 6.0
    },
    {
        "1.0": 7.0,
        "2.0": 8.0
    }
]

Nếu cần đọc tệp Excel từ URL, có thể sử dụng hàm convert_from_url().

Hạn chế của module excel2json-3

  • Tính năng rất hạn chế
  • Không có tùy chọn nào để bỏ qua sheet, hàng hoặc cột, gây khó khăn với tệp Excel lớn
  • JSON được lưu vào tệp, trong khi nhiều trường hợp chúng ta muốn chuyển sang JSON và dùng trực tiếp trong chương trình thay vì lưu ra file
  • Số nguyên bị chuyển thành số thực

Chuyển đổi sheet Excel sang chuỗi JSON bằng module Pandas

Module Pandas cung cấp các hàm đọc sheet Excel vào đối tượng DataFrame. Nó hỗ trợ nhiều tùy chọn như chỉ định header, đọc cột cụ thể, bỏ qua hàng… Bạn có thể tham khảo thêm tại tài liệu pandas.read_excel(). Chúng ta có thể dùng hàm to_json() để chuyển đổi DataFrame thành chuỗi JSON.

Ví dụ đọc sheet “Employees” và chuyển thành chuỗi JSON:

import pandas

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Employees')

json_str = excel_data_df.to_json()

print('Excel Sheet to JSON:\\n', json_str)

Đầu ra:

Excel Sheet to JSON:
 {"EmpID":{"0":1,"1":2,"2":3},"EmpName":{"0":"Pankaj","1":"David Lee","2":"Lisa Ray"},"EmpRole":{"0":"CEO","1":"Editor","2":"Author"}}

Theo mặc định, dữ liệu JSON được tạo theo hướng cột. Nếu muốn dữ liệu theo từng dòng, truyền tham số orient='records':

json_str = excel_data_df.to_json(orient='records')

Đầu ra:

Excel Sheet to JSON:
 [{"EmpID":1,"EmpName":"Pankaj","EmpRole":"CEO"},{"EmpID":2,"EmpName":"David Lee","EmpRole":"Editor"},{"EmpID":3,"EmpName":"Lisa Ray","EmpRole":"Author"}]

Kết luận

Đối với tệp Excel đơn giản và có cấu trúc rõ ràng, bạn nên dùng module excel2json-3 để chuyển sang tệp JSON. Nhưng nếu cần kiểm soát chi tiết hơn cách đọc dữ liệu Excel và cách chuyển sang JSON string, module pandas là lựa chọn phù hợp hơn.

Tham khảo

  • excel2json-3 PyPI.org Page
  • Pandas DataFrame to_json() API Doc

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất