Menu

Chia sẻ cách lấy dữ liệu từ MongoDB vào Excel bằng Python Script

Lộc Nhi Trí 14/06/2026 20:05 547 lượt xem 3 trả lời

Chào mọi người,

Dạo này mình đang làm việc với MongoDB nhiều, mà thỉnh thoảng vẫn cần lấy dữ liệu ra Excel để báo cáo nhanh hoặc gửi cho sếp. Ban đầu cũng loay hoay tìm cách kết nối trực tiếp nhưng thấy hơi phức tạp. Sau đó mình nghĩ ra cách dùng Python script để trích xuất dữ liệu rồi lưu thành file CSV, sau đó nhập vào Excel. Nay chia sẻ lại cho anh em nào cần nhé.

Các bước thực hiện:

  1. Cài đặt thư viện: Bạn cần cài đặt thư viện pymongo để kết nối MongoDB và pandas để xử lý dữ liệu. Dùng pip để cài:
pip install pymongo pandas
  1. Viết script Python: Script này sẽ kết nối tới CSDL MongoDB của bạn, truy vấn dữ liệu và lưu vào file CSV.
from pymongo import MongoClient
import pandas as pd

# Thông tin kết nối MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client['ten_database_cua_ban']
collection = db['ten_collection_cua_ban']

# Truy vấn dữ liệu (ví dụ: lấy tất cả)
data = list(collection.find({}, {"_id": 0})) # Bỏ qua trường _id

# Chuyển thành DataFrame Pandas
df = pd.DataFrame(data)

# Lưu vào file CSV
df.to_csv('du_lieu_tu_mongodb.csv', index=False, encoding='utf-8-sig')

print('Đã xuất dữ liệu thành công ra file du_lieu_tu_mongodb.csv!')
  1. Nhập file CSV vào Excel: Mở file du_lieu_tu_mongodb.csv bằng Excel. Nếu gặp vấn đề về font chữ tiếng Việt, bạn có thể mở Excel, vào tab Data -> From Text/CSV và chọn mã hóa là UTF-8.

Cách này tuy không phải kết nối trực tiếp nhưng khá linh hoạt, đặc biệt khi bạn cần xử lý dữ liệu trước khi đưa vào Excel. Hy vọng chia sẻ này hữu ích cho mọi người!

3

Cách bạn dùng Python để lấy dữ liệu từ MongoDB vào Excel nghe rất thiết thực, nhất là với dân văn phòng hay phải "cân" cả database lẫn Excel như mình.

Mình cũng có một thắc mắc nhỏ, không biết là trong script của bạn, bạn có xử lý trường hợp dữ liệu trong MongoDB có các trường lồng nhau (nested fields) không? Nếu có thì bạn xử lý như thế nào để đưa vào Excel cho dễ nhìn ạ?

Cảm ơn bạn đã chia sẻ nhé!

5

Chào bạn,

Cách bạn dùng Python script để lấy dữ liệu từ MongoDB vào Excel nghe hay quá. Mình cũng đang muốn thử làm theo mà chưa rõ lắm:

  • Bạn có thể chia sẻ cụ thể hơn về cấu trúc file CSV mà script của bạn tạo ra không?
  • Việc import file CSV này vào Excel có phức tạp không, hay chỉ cần vài thao tác đơn giản?

Cảm ơn bạn đã chia sẻ nhé!

Cảm ơn bạn đã chia sẻ giải pháp này. Mình thấy cách dùng Python script là một hướng đi rất linh hoạt, đặc biệt khi dữ liệu lớn hoặc cần xử lý phức tạp trước khi đưa vào Excel.

Ngoài ra, nếu ai ngại viết script, có thể tham khảo thêm các công cụ ETL (Extract, Transform, Load) hỗ trợ kết nối MongoDB với Excel, tuy nhiên chi phí có thể cao hơn.

Chúc bạn có nhiều bài chia sẻ hay hơn nữa!

Hay quá bạn ơi, mình cũng từng gặp vấn đề tương tự khi cần trích xuất dữ liệu từ NoSQL lên Excel.

Mình thì hay dùng một script Python khác, sau khi lấy dữ liệu từ MongoDB thì dùng pandas.DataFrame.to_excel() trực tiếp để lưu thành file .xlsx, đỡ phải qua bước CSV trung gian. Tuy nhiên, cách của bạn cũng rất hay và có thể phù hợp với nhiều trường hợp khác nhau.

Cảm ơn bạn đã mở mang kiến thức!

0
Hay quá bạn ơi, mình cũng từng gặp vấn đề tương tự khi cần trích xuất dữ liệu từ NoSQL lên Excel.
Mình thì hay dùng một script Python khác, sau khi lấy dữ liệu từ MongoDB thì dùng pandas.DataFrame.to_excel() trực tiếp để lưu thành file .xlsx, đỡ phải qua bước CSV trung gian. Tuy nhiên, cách của bạn cũng rất hay và có thể phù hợp với nhiều trường hợp khác nhau.
Cảm ơn bạn đã mở mang kiến thức!
5

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

Đăng nhập Đăng ký