Bộ chuyển đổi JSON sang Excel

Chuyển đổi JSON sang Excel trực tuyến — miễn phí, tức thì và riêng tư. Tệp của bạn được xử lý ngay trong trình duyệt, tuyệt đối không tải lên máy chủ.

Kết quả

Các tệp đã chuyển đổi và bản xem trước sẽ xuất hiện ở đây.

Sẵn sàng. Hãy chọn một tệp bảng để chuyển đổi.

Nguyên lý chuyển đổi

  • Một mảng các đối tượng sẽ được chuyển thành các hàng và cột; các đối tượng lồng nhau sẽ được làm phẳng thành các cột có khóa dạng dấu chấm, ví dụ: address.city.
  • Bảng tính được xuất ra dưới dạng một trang tính duy nhất chứa các giá trị thuần túy — không bao gồm công thức, định dạng hay các tab phụ.

Tệp bảng của bạn được chuyển đổi trực tiếp trong trình duyệt. Không có dữ liệu nào được tải lên BroBroGo.

Câu hỏi thường gặp

Làm cách nào để chuyển đổi JSON sang Excel?

Thả tệp JSON của bạn vào và nhấp vào chuyển đổi — tệp Excel sẽ sẵn sàng để tải xuống trong vài giây, đi kèm với bản xem trước kết quả. Mọi quy trình đều chạy trực tiếp trên thiết bị của bạn.

Tôi có thể chuyển đổi tệp có dung lượng tối đa là bao nhiêu?

Hỗ trợ tối đa 8 MB, 10.000 hàng và 200 cột cho mỗi tệp. Với các tập dữ liệu lớn hơn, tốt nhất bạn nên chia nhỏ chúng thành các tệp nhỏ trước khi thực hiện.

Chuyển đổi JSON sang Excel (XLSX): Giải pháp làm phẳng dữ liệu phân cấp

Tại sao JSON không thể chuyển thẳng thành bảng tính

JSON là định dạng dữ liệu có kiểu và có khả năng lồng nhau — nó có thể chứa các đối tượng (object), mảng (array), số (number), giá trị logic (boolean) và null. Một bảng tính phẳng (flat spreadsheet) không thể trực tiếp biểu diễn hệ thống phân cấp đó. Đây là điểm khác biệt cốt lõi của công cụ này so với các bộ chuyển đổi CSV hoặc Excel thông thường.

Khi bạn tải lên một tệp JSON, công cụ tự động áp dụng quy tắc làm phẳng: các khóa của đối tượng trở thành tiêu đề cột, mảng các đối tượng trở thành các hàng, và các khóa lồng nhau được mở rộng với tên đường dẫn có dấu chấm (dot-path). Ví dụ, một đối tượng {"address": {"city": "Hà Nội", "district": "Cầu Giấy"}} sẽ tạo ra hai cột có tên address.cityaddress.district. Đây là bước trung gian bắt buộc mà không tồn tại khi chuyển từ CSV hoặc Excel, vì các định dạng đó vốn đã phẳng.

Định dạng XLSX và cách nó lưu trữ kiểu dữ liệu

Định dạng đích là XLSX — một workbook XML được nén zip, có khả năng lưu trữ nguyên bản các kiểu dữ liệu như số và giá trị logic (boolean). Điều này khác biệt hoàn toàn với CSV, định dạng giảm mọi thứ xuống chuỗi văn bản (text string).

Khi bạn chuyển JSON sang XLSX qua công cụ này, số nguyên (integer) và số thập phân (float) giữ nguyên kiểu số trong ô Excel. Giá trị truefalse được ánh xạ thành giá trị logic. Giá trị null được chuyển thành ô trống (empty cell). Công cụ không tính toán công thứckhông giữ lại bất kỳ định dạng ô nào — nó chỉ ghi dữ liệu tĩnh nhìn thấy được từ nguồn JSON.

Đối với một tệp JSON như sau:

[
  {"name": "Nguyễn Văn A", "age": 30, "active": true, "score": null},
  {"name": "Trần Thị B", "age": 25, "active": false, "score": 85.5}
]

Kết quả trong Excel sẽ có:

  • Cột name: "Nguyễn Văn A", "Trần Thị B" (kiểu text)
  • Cột age: 30, 25 (kiểu number)
  • Cột active: true, false (kiểu boolean)
  • Cột score: ô trống, 85.5 (kiểu number)

Nếu bạn xuất cùng dữ liệu này ra CSV, tất cả sẽ trở thành text — 30 sẽ là chuỗi "30", true sẽ là chuỗi "TRUE". Như vậy, chuyển sang XLSX bảo toàn kiểu dữ liệu gốc, giúp việc phân tích số liệu và áp dụng công thức Excel sau đó trở nên chính xác.

Quy tắc làm phẳng và cách xử lý cấu trúc phân cấp

Công cụ chỉ xử lý một tệp JSON duy nhất mỗi lần. JSON đầu vào phải có dạng "bảng" (table-shaped) — hoặc là một mảng các đối tượng (array of objects), hoặc là một mảng các mảng (array of arrays).

Trường hợp 1: Mảng các đối tượng

Mỗi đối tượng trong mảng trở thành một hàng. Các khóa của đối tượng trở thành tiêu đề cột. Nếu một đối tượng có khóa lồng nhau (khóa chứa một đối tượng khác), các khóa con được làm phẳng bằng dấu chấm.

Ví dụ:

[
  {"user": {"id": 1, "name": "Alice"}, "orders": 5},
  {"user": {"id": 2, "name": "Bob"}, "orders": 3}
]

Sẽ tạo ra bảng với các cột: user.id, user.name, orders. Các hàng tương ứng là (1, "Alice", 5) và (2, "Bob", 3).

Trường hợp 2: Mảng các mảng

Nếu JSON đầu vào là một mảng các mảng (ví dụ [["a", 1], ["b", 2]]), công cụ giữ nguyên cấu trúc đó làm các hàng. Mỗi mảng con trở thành một hàng, các phần tử của mảng con trở thành các cột (cột 0, cột 1,...). Không có tiêu đề cột từ dữ liệu.

Giới hạn quan trọng

Công cụ chỉ tạo ra một trang tính (worksheet) duy nhất. Không có nhiều sheet, không có công thức, không có định dạng nào từ JSON được chuyển qua. Nếu JSON đầu vào chứa nhiều mảng cấp cao nhất (ví dụ {"users": [...], "products": [...]}), điều này sẽ không tạo ra hai sheet riêng biệt — thay vào đó, cấu trúc đó không phải là "bảng" và sẽ kích hoạt lỗi.

Các trường hợp ngoại lệ và thông báo lỗi

Công cụ kiểm tra đầu vào qua nhiều tầng và đưa ra thông báo lỗi cụ thể:

  • "Choose one file first." — Người dùng chưa chọn tệp nào.
  • "Choose a CSV, JSON or XLSX file." — Tệp không có phần mở rộng.csv,.json, hoặc.xlsx.
  • "This file is too large. Use a file under ‹max›." — Kích thước tệp vượt quá giới hạn.
  • "This JSON is invalid or not table‑shaped." — Cấu trúc JSON không hợp lệ (sai cú pháp) hoặc không phải mảng các đối tượng/mảng các mảng.
  • "This file has no table rows." — Mảng rỗng: [].
  • "This table has more than ‹max› rows." — Số hàng vượt quá ngưỡng cho phép.
  • "This table has more than ‹max› columns." — Số cột vượt quá ngưỡng cho phép.
  • "Conversion cancelled." — Người dùng hủy quá trình.
  • "This conversion is taking too long. Try a smaller file." — Tệp quá lớn hoặc có cấu trúc phức tạp làm chậm xử lý.

Giới hạn ‹max› thay đổi tùy cấu hình, nhưng nguyên tắc chung: nếu dữ liệu có hơn 1.000.000 hàng hoặc hơn 16.384 cột (giới hạn của Excel), công cụ từ chối xử lý. Nếu một mảng các đối tượng có một đối tượng chứa 100 khóa lồng nhau cấp 3, số cột có thể tăng lên rất nhanh (ví dụ a.b.c, a.b.d, a.e.f, v.v.), và công cụ sẽ kiểm tra tổng số cột trước khi tạo bảng.

Xử lý phía client và bảo mật dữ liệu

Toàn bộ quá trình chuyển đổi diễn ra hoàn toàn trên trình duyệt của người dùng. Không có tệp nào được tải lên máy chủ. Điều này có nghĩa là dữ liệu nhạy cảm (ví dụ thông tin cá nhân, dữ liệu API nội bộ) không rời khỏi máy tính của bạn. Công cụ đọc tệp JSON qua File API của trình duyệt, phân tích cấu trúc, tạo bảng phẳng, hiển thị bản xem trước và cho phép tải xuống tệp XLSX kết quả.

Bản xem trước hiển thị số hàng, số cột và kích thước của tệp đầu ra. Điều này giúp bạn ước lượng trước khi tải xuống — nếu bảng có 500.000 hàng và 200 cột, bạn có thể quyết định có nên tải xuống hay cần giới hạn dữ liệu trước.

Các lỗi thường gặp và cách khắc phục

Lỗi: "This JSON is invalid or not table‑shaped."

Nguyên nhân phổ biến nhất: JSON đầu vào không phải là mảng. Ví dụ:

{"users": [{"name": "A"}, {"name": "B"}]}

Đây là một đối tượng, không phải mảng. Giải pháp: trích xuất mảng users trước khi tải lên. Hoặc nếu API trả về dạng này, bạn cần sửa thủ công thành [{"name": "A"}, {"name": "B"}].

Một nguyên nhân khác: JSON chứa mảng nhưng các phần tử không đồng nhất:

[{"name": "A"}, 42, {"name": "B"}]

Phần tử 42 không phải đối tượng, gây ra lỗi. Công cụ yêu cầu tất cả phần tử trong mảng phải cùng loại (tất cả là đối tượng hoặc tất cả là mảng).

Lỗi: "This file has no table rows."

Mảng rỗng [] hoặc mảng chỉ chứa các đối tượng/mảng rỗng bên trong. Công cụ không thể tạo bảng nếu không có dữ liệu.

Xử lý null và giá trị thiếu

Khi các đối tượng trong mảng có các khóa khác nhau, công cụ tổng hợp tất cả khóa từ tất cả đối tượng để tạo danh sách cột. Giá trị thiếu (một đối tượng không có khóa nào đó) được điền ô trống. Giá trị null cũng thành ô trống.

Ví dụ:

[
  {"name": "A", "age": 30},
  {"name": "B", "city": "HN"}
]

Sẽ tạo ra ba cột: name, age, city. Hàng thứ nhất: "A", 30, (trống). Hàng thứ hai: "B", (trống), "HN".

Giới hạn của bảng phẳng

Bảng phẳng không thể biểu diễn đầy đủ các mảng lồng nhau hoặc đối tượng sâu. Nếu JSON có cấu trúc:

[
  {"name": "A", "tags": ["dev", "ops"]},
  {"name": "B", "tags": ["lead"]}
]

Khi làm phẳng, mảng tags sẽ được xử lý thế nào? Công cụ không mở rộng mảng thành nhiều hàng; thay vào đó, nó biến mảng thành chuỗi JSON (ví dụ ["dev", "ops"]) hoặc tách thành các cột tags.0, tags.1. Tùy vào logic nội bộ. Nếu tags có độ dài khác nhau, một số cột sẽ bị trống. Cách an toàn nhất: làm phẳng thủ công trước khi tải lên nếu bạn cần mỗi giá trị trong một ô riêng.

Câu hỏi thường gặp (FAQ)

1. Tôi có thể chuyển nhiều tệp JSON cùng lúc không?

Không. Công cụ chỉ chấp nhận một tệp duy nhất mỗi lần. Nếu bạn có nhiều tệp, cần chuyển từng tệp riêng biệt.

2. Tại sao tệp XLSX đầu ra lại lớn hơn tệp JSON gốc?

Định dạng XLSX là XML được nén zip, nhưng nó chứa nhiều thông tin cấu trúc (định nghĩa kiểu dữ liệu, quan hệ, metadata) so với JSON thuần. Nếu JSON có nhiều hàng và cột, kích thước tăng lên khoảng 1,5–3 lần tùy độ dài nội dung.

3. Có giữ được công thức Excel từ JSON không?

Không. JSON không có khái niệm công thức. Công cụ chỉ ghi dữ liệu tĩnh. Nếu bạn cần công thức, phải thêm chúng sau trong Excel.

4. Làm thế nào để xử lý JSON có cấu trúc lồng nhau rất sâu?

Công cụ tự động làm phẳng mọi cấp độ bằng dấu chấm. Ví dụ a.b.c.d có thể trở thành một cột. Nhưng nếu số cột vượt quá giới hạn, công cụ từ chối. Giải pháp: viết script Python hoặc JavaScript để làm phẳng trước khi tải lên, nhóm các khóa sâu thành các cột riêng biệt.

5. Tệp CSV có thể giữ kiểu dữ liệu như XLSX không?

Không. CSV là văn bản thuần, mọi giá trị đều trở thành chuỗi. Số 42 thành "42", true thành "TRUE". Nếu bạn cần phân tích số liệu, XLSX là lựa chọn tốt hơn.

6. Dữ liệu của tôi có an toàn không?

Có. Quá trình chuyển đổi chạy hoàn toàn trên trình duyệt, không có tệp nào được tải lên máy chủ. Dữ liệu nhạy cảm không rời khỏi máy tính của bạn.