Menu

Tự động hóa trích xuất dữ liệu Excel sang file JSON bằng Python - Hướng dẫn chi tiết

Triệu Tuyền Chính 05/06/2026 03:43 376 lượt xem 3 trả lời

Chào mọi người,

Dạo này mình đang làm một dự án cần trích xuất dữ liệu từ các file Excel và lưu trữ dưới dạng JSON để dễ dàng xử lý và tích hợp với các hệ thống khác. Mình thấy trong diễn đàn có nhiều bài chia sẻ về Python với Excel, nhưng chưa có bài nào đi sâu vào việc xuất dữ liệu Excel sang JSON. Hôm nay, mình muốn chia sẻ một script Python đơn giản mà mình đã viết để giải quyết vấn đề này.

Tại sao lại là JSON?

  • JSON (JavaScript Object Notation) là một định dạng dữ liệu nhẹ, dễ đọc, dễ viết và dễ phân tích.
  • Nó được sử dụng rộng rãi trong các ứng dụng web, API và trao đổi dữ liệu giữa các hệ thống.

Yêu cầu:

  • Python 3
  • Thư viện pandas (cài đặt bằng pip install pandas)

Script Python:

import pandas as pd

def excel_to_json(excel_file_path, sheet_name, json_file_path):
    try:
        df = pd.read_excel(excel_file_path, sheet_name=sheet_name)
        df.to_json(json_file_path, orient='records', indent=4, force_ascii=False)
        print(f"Dữ liệu từ '{sheet_name}' đã được xuất thành công sang '{json_file_path}'")
    except FileNotFoundError:
        print(f"Lỗi: Không tìm thấy file '{excel_file_path}'")
    except Exception as e:
        print(f"Đã xảy ra lỗi: {e}")

# --- Ví dụ sử dụng ---
excel_input = 'du_lieu_ban_hang.xlsx' # Thay bằng tên file Excel của bạn
sheet_input = 'Sales Data'      # Thay bằng tên sheet cần trích xuất
json_output = 'output_data.json' # Tên file JSON đầu ra

excel_to_json(excel_input, sheet_input, json_output)

Giải thích:

  • pd.read_excel(excel_file_path, sheet_name=sheet_name): Đọc dữ liệu từ file Excel vào một DataFrame của pandas.
  • df.to_json(json_file_path, orient='records', indent=4, force_ascii=False): Xuất DataFrame ra file JSON.
    • orient='records': Định dạng mỗi hàng trong DataFrame thành một đối tượng JSON riêng biệt.
    • indent=4: Thụt lề 4 khoảng trắng để file JSON dễ đọc hơn.
    • force_ascii=False: Đảm bảo các ký tự tiếng Việt không bị mã hóa thành dạng escape sequence.

Hy vọng script này hữu ích cho các bạn đang cần xử lý dữ liệu Excel theo cách tương tự. Nếu có bất kỳ câu hỏi nào, đừng ngần ngại đặt câu hỏi nhé!

1

Chào bạn,

Cảm ơn bạn đã chia sẻ script rất hữu ích này! Việc chuyển đổi dữ liệu Excel sang JSON là một nhu cầu thực tế khi làm việc với các API hoặc các hệ thống cần trao đổi dữ liệu. Mình cũng từng gặp tình huống tương tự và phải mày mò viết lại script.

Bạn có thể chia sẻ thêm về cách xử lý trường hợp dữ liệu Excel có nhiều sheet không? Script của bạn có hỗ trợ trường hợp này không?

4

Topic này hay quá! Mình cũng đang tìm hiểu cách tự động hóa mấy vụ xuất nhập dữ liệu này. Script của bạn chắc chắn sẽ giúp ích được nhiều anh em đấy.

Về phần xử lý nhiều sheet, bạn có thể chia sẻ thêm cách bạn xử lý dữ liệu khi mỗi sheet có cấu trúc cột khác nhau không? Hay script của bạn mặc định giả định các sheet có cấu trúc giống nhau?

2

Cảm ơn bạn đã mở ra một chủ đề rất thú vị và thiết thực! Việc chuyển đổi dữ liệu Excel sang JSON thực sự là một bước quan trọng để tích hợp dữ liệu vào các hệ thống hiện đại.

Mình thấy script của bạn rất gọn gàng. Ngoài việc dùng thư viện pandas, mình cũng có một cách khác hơi "thủ công" hơn một chút, đó là đọc từng dòng Excel bằng openpyxl rồi tự xây dựng cấu trúc JSON. Tuy nhiên, cách của bạn chắc chắn là hiệu quả và dễ maintain hơn nhiều.

Bạn có thể chia sẻ thêm về cách xử lý các kiểu dữ liệu phức tạp trong Excel (ví dụ: ngày tháng, số thập phân có nhiều chữ số sau dấu phẩy) khi chuyển sang JSON không? Liệu có cần cấu hình gì thêm không?

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký