Cách Chuyển Đổi File Json Sang Excel: Hướng Dẫn Chi Tiết Từ A Đến Z

Trong thời đại số hiện nay, dữ liệu là tài sản quý giá giúp các doanh nghiệp và cá nhân đưa ra quyết định thông minh. Hai định dạng dữ liệu phổ biến mà chúng ta thường gặp là JSON (JavaScript Object Notation) và Excel (XLS/XLSX). JSON thường được sử dụng để truyền tải dữ liệu qua API, lưu trữ cấu hình, hoặc làm nguồn dữ liệu cho các ứng dụng web. Trong khi đó, Excel lại là công cụ mạnh mẽ để phân tích, trực quan hoá và chia sẻ dữ liệu trong môi trường doanh nghiệp. Vì vậy, việc chuyển đổi từ JSON sang Excel là một nhu cầu thường gặp. Bài viết dưới đây sẽ cung cấp cho bạn một hướng dẫn chi tiết, đầy đủ các phương pháp, công cụ và lưu ý quan trọng khi thực hiện chuyển đổi này.

1. Hiểu Rõ Định Dạng JSON và Excel

1.1 JSON là gì?

  • Cú pháp nhẹ, dễ đọc: JSON sử dụng cặp key-value, hỗ trợ các kiểu dữ liệu như string, number, boolean, null, array và object.
  • Được sử dụng rộng rãi: API RESTful, cấu hình hệ thống, lưu trữ tạm thời, log, v.v.
  • Cấu trúc lồng nhau: Dữ liệu có thể có nhiều cấp độ (nested objects, arrays).

1.2 Excel là gì?

  • Bảng tính: Dữ liệu được tổ chức dưới dạng hàng và cột.
  • Định dạng file: .xls (cũ) và .xlsx (mới, dựa trên XML).
  • Khả năng tính toán và biểu đồ: Hỗ trợ công thức, pivot table, chart, macro.

1.3 Thách thức khi chuyển đổi

Thách thứcMô tả
Cấu trúc lồng nhauJSON có thể chứa object trong array, ngược lại Excel chỉ có 2 chiều.
Kiểu dữ liệuJSON không có kiểu ngày tháng, Excel có định dạng ngày.
Kích thước tệpJSON lớn (hàng triệu bản ghi) có thể gây treo Excel.
Độ chính xácKhi chuyển số lớn hoặc số thập phân, cần kiểm soát định dạng.

2. Các Phương Pháp Chuyển Đổi JSON Sang Excel

2.1 Sử Dụng Công Cụ Trực Tuyến

2.1.1 ConvertCSV.com (JSON to Excel)

  • Ưu điểm: Không cần cài đặt, giao diện đơn giản, hỗ trợ tệp lên tới 50 MB.
  • Nhược điểm: Bảo mật dữ liệu không cao, không tùy chỉnh sâu.
  • Cách dùng:
  • Truy cập https://www.convertcsv.com/json-to-csv.htm
  • Tải lên file JSON hoặc dán nội dung.
  • Chọn “Convert to CSV”.
  • Tải file CSV và mở bằng Excel, sau đó lưu dưới dạng .xlsx.

2.1.2 Json-csv.com

  • Ưu điểm: Cho phép cấu hình cách flatten (làm phẳng) dữ liệu.
  • Cách dùng:
  • Vào https://json-csv.com/
  • Dán JSON, bật “Flatten nested objects”.
  • Nhấn “Convert” → Tải CSV → Mở trong Excel.

Lưu ý: Khi sử dụng công cụ trực tuyến, luôn kiểm tra chính sách bảo mật và không tải lên dữ liệu nhạy cảm.

2.2 Sử Dụng Các Phần Mềm Desktop

2.2.1 Microsoft Power Query (đã tích hợp trong Excel 2026 trở lên)

Power Query là công cụ mạnh mẽ để nhập, biến đổi và tải dữ liệu.

Bước thực hiện:

  1. Mở Excel → Tab “Data” → “Get Data” → “From File” → “From JSON”.
  2. Chọn file JSON. Power Query sẽ hiển thị một bảng với các cột chứa dữ liệu lồng nhau.
  3. Chuyển đổi (Transform):
  4. Click vào biểu tượng “Expand” (hai mũi tên) để mở rộng các trường con.
  5. Lặp lại quá trình expand cho các cấp độ lồng nhau.
  6. Sử dụng “Replace Values”, “Change Type” để chuẩn hoá kiểu dữ liệu.
  7. Nhấn “Close & Load” để tải dữ liệu vào sheet.

Ưu điểm:
– Không cần cài đặt thêm phần mềm.
– Hỗ trợ tự động cập nhật khi file JSON thay đổi.
– Có khả năng xử lý dữ liệu lớn (tùy vào RAM).

Nhược điểm:
– Giao diện có thể phức tạp đối với người mới.
– Đối với JSON có cấu trúc phi chuẩn, cần viết M code (ngôn ngữ của Power Query) để xử lý.

2.2.2 Altova MapForce

  • Chức năng: Mapping dữ liệu giữa JSON và Excel.
  • Cách dùng:
  • Tạo dự án mới, chọn “JSON” làm nguồn và “Excel” làm đích.
  • Kéo thả các trường để ánh xạ.
  • Chạy “Generate Mapping” → Xuất file Excel.
  • Ưu điểm: Giao diện kéo-thả, hỗ trợ chuyển đổi phức tạp.
  • Nhược điểm: Phải mua bản quyền (có bản trial).

2.2.3 JSON to Excel Converter (phần mềm miễn phí)

  • Tải về: https://www.conversion-tools.com/json-to-excel
  • Tính năng: Chuyển đổi nhanh, hỗ trợ flatten tự động.
  • Cách dùng:
  • Cài đặt phần mềm.
  • Chọn file JSON, thiết lập “Flatten Depth”.
  • Nhấn “Convert” → Lưu file Excel.

2.3 Sử Dụng Ngôn Ngữ Lập Trình

2.3.1 Python

Python là lựa chọn phổ biến vì thư viện pandas và openpyxl mạnh mẽ.

import json
import pandas as pd # Bước 1: Đọc file JSON
with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f) # data có thể là list hoặc dict # Bước 2: Flatten nếu cần (đối với nested JSON)
def flatten_json(y): out = {} def flatten(x, name=''): if isinstance(x, dict): for a in x: flatten(xa, f'{name}{a}_') elif isinstance(x, list): i = 0 for a in x: flatten(a, f'{name}{i}_') i += 1 else: outname:-1 = x flatten(y) return out # Nếu dữ liệu là list các object
if isinstance(data, list): flat_data = flatten_json(item) for item in data
else: flat_data = flatten_json(data) # Bước 3: Tạo DataFrame và xuất Excel
df = pd.DataFrame(flat_data) # Định dạng ngày tháng (nếu có)
# df'date' = pd.to_datetime(df'date') df.to_excel('output.xlsx', index=False, engine='openpyxl')
print('Hoàn thành! File được lưu tại output.xlsx')

Giải thích:
– flatten_json chuyển các object lồng nhau thành các cột phẳng.
– pandas.DataFrame tự động xử lý kiểu dữ liệu.
– to_excel sử dụng engine openpyxl để ghi file .xlsx.

Ưu điểm:
– Linh hoạt, có thể tùy chỉnh sâu.
– Xử lý dữ liệu lớn (có thể dùng chunk).

Nhược điểm:
– Cần cài Python và các thư viện (pip install pandas openpyxl).

2.3.2 JavaScript (Node.js)

const fs = require('fs');
const xlsx = require('xlsx'); // Đọc JSON
const raw = fs.readFileSync('data.json');
const data = JSON.parse(raw); // Hàm flatten (sử dụng lodash)
const _ = require('lodash'); function flatten(obj, prefix = '', result = {}) { for (let key in obj) { const value = objkey; const newKey = prefix ? `${prefix}_${key}` : key; if (_.isPlainObject(value) || Array.isArray(value)) { flatten(value, newKey, result); } else { resultnewKey = value; } } return result;
} // Nếu là mảng, flatten từng phần tử
const flatData = Array.isArray(data) ? data.map(item => flatten(item)) : flatten(data); // Chuyển sang sheet
const ws = xlsx.utils.json_to_sheet(flatData);
const wb = xlsx.utils.book_new();
xlsx.utils.book_append_sheet(wb, ws, 'Sheet1'); // Ghi file Excel
xlsx.writeFile(wb, 'output.xlsx');
console.log('Chuyển đổi thành công!');
  • Cài đặt: npm install xlsx lodash.
  • Thích hợp cho môi trường server hoặc script tự động.

2.3.3 R

library(jsonlite)
library(openxlsx) json_data <- fromJSON("data.json", flatten = TRUE)
write.xlsx(json_data, file = "output.xlsx", sheetName = "Data", rowNames = FALSE)
  • R rất mạnh trong thống kê, flatten = TRUE tự động làm phẳng nested JSON.

2.4 Sử Dụng Macro VBA trong Excel

Nếu bạn muốn thực hiện chuyển đổi trực tiếp trong Excel mà không rời khỏi môi trường, có thể viết macro VBA:

Sub JSONtoExcel() Dim jsonText As String Dim jsonFile As String Dim http As Object Dim parsed As Object Dim ws As Worksheet Dim i As Long, j As Long jsonFile = Application.GetOpenFilename("JSON Files (.json), .json") If jsonFile = "False" Then Exit Sub Set http = CreateObject("MSXML2.XMLHTTP") Open jsonFile For Input As #1 jsonText = Input$(LOF(1), 1) Close #1 Set parsed = JsonConverter.ParseJson(jsonText) ' Cần thêm thư viện JsonConverter (VBA-JSON) Set ws = ThisWorkbook.Sheets.Add ws.Name = "JSON_Data" i = 1 For Each key In parsed.Keys ws.Cells(1, i).Value = key ws.Cells(2, i).Value = parsed(key) i = i + 1 Next key MsgBox "Hoàn thành!", vbInformation
End Sub
  • Yêu cầu: Thêm module JsonConverter.bas từ dự án VBA-JSON (github.com/VBA-tools/VBA-JSON).
  • Phù hợp cho các file JSON không quá phức tạp.

3. Quy Trình Chi Tiết Khi Chuyển Đổi (Bước‑Bước)

Bước 1: Xác Định Cấu Trúc JSON

  • Mở file bằng Notepad++ hoặc VS Code.
  • Kiểm tra: array of objects hay single object?
  • Đánh dấu các trường lồng nhau cần flatten.

Bước 2: Lựa Chọn Công Cụ Phù Hợp

Tình huốngCông cụ đề xuất
Không có kiến thức lập trình, muốn nhanhPower Query (Excel) hoặc công cụ trực tuyến
Dữ liệu lớn (> 100k bản ghi)Python (pandas) hoặc Power Query với “Load to Data Model”
Cần tự động hoá (cron job)Node.js hoặc Python script
Dữ liệu nhạy cảmSử dụng phần mềm offline (Altova, Python)

Bước 3: Chuẩn Hóa Dữ Liệu

  • Kiểu ngày: Chuyển "2026-07-15T08:30:00Z" → 2026-07-15 08:30.
  • Số thập phân: Đảm bảo không mất chữ số thập phân (sử dụng Decimal trong Python).
  • Null/Empty: Thay thế bằng NA hoặc để trống tùy nhu cầu.

Bước 4: Flatten (Làm Phẳng) Các Trường Lồng Nhau

How To Convert Json File To Excel
How To Convert Json File To Excel
  • Cách 1: Sử dụng json_normalize trong pandas:
    python df = pd.json_normalize(data, sep='_')
  • Cách 2: Trong Power Query, chọn “Expand” nhiều lần.
  • Cách 3: Viết hàm flatten_json như trong phần Python.

Bước 5: Xuất Sang Excel

  • CSV → Excel: Đối với dữ liệu không cần định dạng đặc biệt, xuất CSV rồi mở bằng Excel.
  • XLSX trực tiếp: Sử dụng to_excel (pandas), xlsx.writeFile (Node), hoặc “Close & Load” trong Power Query.

Bước 6: Kiểm Tra và Định Dạng Cuối Cùng

  • Kiểm tra header: Không có ký tự đặc biệt, không có khoảng trắng thừa.
  • Định dạng cột ngày (yyyy-mm-dd) và cột tiền tệ.
  • Thêm bảng (Table) trong Excel để dễ lọc, pivot.

Bước 7: Lưu và Chia Sẻ

  • Lưu dưới định dạng .xlsx hoặc .xlsb (nén, nhanh hơn).
  • Nếu cần chia sẻ, có thể xuất ra PDF hoặc CSV tùy yêu cầu.

4. Xử Lý Các Trường Hợp Đặc Biệt

4.1 JSON Có Mảng Con (Array of Objects)

Ví dụ:

{ "order_id": 123, "customer": {"name":"Nguyen A","email":"a@example.com"}, "items": {"product":"Sách A","qty":2,"price":50000}, {"product":"Sách B","qty":1,"price":75000} }

Giải pháp:
– Flatten Order + Customer thành một dòng.
– Expand items thành nhiều dòng, mỗi item là một dòng, đồng thời giữ order_id và thông tin khách hàng.

Trong Power Query:
1. Expand customer.
2. Expand items → chọn “Expand to New Rows”.
3. Expand các trường trong items.

Trong pandas:

df_orders = pd.json_normalize(data, record_path='items', meta='order_id', 'customer','name', 'customer','email', sep='_')

4.2 JSON Lớn (Hàng Triệu Bản Ghi)

  • Chunking: Đọc file theo từng phần (streaming) thay vì load toàn bộ.
  • Python streaming:
    python import ijson # pip install ijson objects = ijson.items(open('big.json','r'), 'item') rows = for obj in objects: rows.append(flatten_json(obj)) if len(rows) >= 10000: pd.DataFrame(rows).to_excel('part.xlsx', index=False, mode='a', header=not os.path.exists('part.xlsx')) rows =
  • Power Query: Chỉ tải một phần (Preview) và sử dụng “Load to Data Model” để tránh chiếm RAM.

4.3 Các Kiểu Dữ Liệu Đặc Biệt

KiểuXử lý trong Excel
Boolean (true/false)Định dạng dưới dạng TRUE/FALSE hoặc 1/0.
Timestamp (UNIX)=(((A1/1000)/86400)+DATE(1970,1,1)) để chuyển sang ngày.
Hexadecimal=HEX2DEC(A1) nếu cần chuyển sang decimal.
GeoJSON (lat/lng)Tách thành hai cột lat và lng.

5. Tối Ưu Hóa Hiệu Suất Khi Chuyển Đổi

  1. Giảm độ sâu flatten: Không cần flatten toàn bộ nếu chỉ dùng một phần dữ liệu.
  2. Sử dụng Data Types: Đặt đúng kiểu (int64, float64, datetime64) để giảm dung lượng.
  3. Bảo trì bộ nhớ: Xóa các biến không cần thiết (del df) và gọi gc.collect() trong Python.
  4. Sử dụng multi‑thread: Khi có nhiều file JSON, chạy song song (multiprocessing).

6. Các Lỗi Thường Gặp và Cách Khắc Phục

LỗiNguyên nhânCách khắc phục
#VALUE! trong ExcelDữ liệu không đồng nhất (số + chuỗi)Kiểm tra và đồng nhất kiểu dữ liệu trước khi xuất.
File quá lớn không mở đượcExcel giới hạn 1,048,576 hàngCắt dữ liệu thành nhiều sheet hoặc dùng CSV.
Missing column namesJSON không có key đồng nhấtKhi flatten, sử dụng fillna để tạo tên cột mặc định.
Encoding error (UnicodeDecodeError)File JSON mã hoá không phải UTF‑8Mở file với encoding='utf-8-sig' hoặc latin-1.
Power Query “Expression.Error: We couldn’t convert to Number”Cột chứa giá trị không phải sốThêm bước “Change Type” -> “Text” rồi mới chuyển sang Number khi cần.

7. Bảo Mật và Quyền Riêng Tư Khi Xử Lý JSON

  • Không tải lên dữ liệu nhạy cảm: Thông tin cá nhân, tài chính, mật khẩu.
  • Mã hoá file: Nếu phải dùng công cụ trực tuyến, nén file và mã hoá bằng zip có mật khẩu.
  • Xóa cache: Sau khi dùng công cụ online, xóa lịch sử tải lên (nếu có).
  • Tuân thủ GDPR / CCPA: Khi dữ liệu chứa thông tin người EU hoặc Mỹ, cần xóa dữ liệu cá nhân (anonymize) trước khi chuyển đổi.

8. Tự Động Hóa Quy Trình Trong Doanh Nghiệp

8.1 Sử Dụng Power Automate (Microsoft Flow)

  • Trigger: Khi một file JSON được tải lên SharePoint/OneDrive.
  • Action: “Parse JSON” → “Create CSV table” → “Create file” (Excel).
  • Lợi ích: Không cần lập trình, tích hợp sẵn trong môi trường Microsoft 365.

8.2 Cron Job + Python Script

0 2 /usr/bin/python3 /home/user/scripts/json_to_excel.py >> /var/log/json2excel.log 2>&1
  • Đặt script chạy vào giờ thấp điểm, tự động gửi email báo cáo khi hoàn thành.

8.3 Docker Container

  • Đóng gói script Python trong Docker để chạy trên bất kỳ môi trường nào.
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD "python", "convert.py"
  • Triển khai trên Kubernetes hoặc server nội bộ.

9. Tổng Kết

Việc chuyển đổi JSON sang Excel không còn là một thách thức khó khăn nếu bạn nắm vững các công cụ và quy trình phù hợp. Từ các giải pháp trực tuyến nhanh chóng, công cụ desktop mạnh mẽ, đến lập trình tùy chỉnh bằng Python, Node.js, R hay VBA, bạn có thể lựa chọn cách tiếp cận phù hợp với:

  • Khối lượng dữ liệu (từ vài kilobyte đến hàng triệu bản ghi).
  • Mức độ phức tạp của cấu trúc JSON (đơn giản hay lồng nhau sâu).
  • Yêu cầu bảo mật (dữ liệu nội bộ hay công khai).
  • Khả năng tự động hoá (cron job, Power Automate, Docker).

Hãy luôn bắt đầu bằng việc đánh giá cấu trúc JSON, làm phẳng (flatten) dữ liệu một cách hợp lý, và định dạng lại trong Excel để đạt được kết quả sạch sẽ, chính xác và sẵn sàng cho các bước phân tích tiếp theo. Với các ví dụ code chi tiết và hướng dẫn thực hành, bạn hoàn toàn có thể triển khai quy trình này ngay trong dự án của mình.

Chúc bạn thành công trong việc chuyển đổi dữ liệu và khai thác tối đa giá trị từ những file JSON của mình!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận