Menu

Tự động hóa đồng bộ dữ liệu Excel với SQLite bằng Python - Chia sẻ kinh nghiệm

Lục Luân Mơ 26/03/2026 12:55 257 lượt xem 2 trả lời

Chào các bác, em đang làm một dự án nhỏ cần đồng bộ dữ liệu giữa file Excel và một cơ sở dữ liệu SQLite. Em đã thử vài cách nhưng thấy dùng Python là tiện nhất, vừa linh hoạt lại vừa tự động hóa được.

Em muốn chia sẻ với mọi người quy trình cơ bản em đang áp dụng, hy vọng có thể giúp ích cho ai đang tìm kiếm giải pháp tương tự.

Quy trình thực hiện

  • Bước 1: Chuẩn bị môi trường
    Cài đặt Python và các thư viện cần thiết: pandas (để đọc/ghi Excel) và sqlite3 (có sẵn trong Python).
  • Bước 2: Đọc dữ liệu từ Excel
    Sử dụng pandas.read_excel() để nạp dữ liệu từ file Excel vào DataFrame.
  • Bước 3: Kết nối và ghi dữ liệu vào SQLite
    Tạo kết nối đến file cơ sở dữ liệu SQLite bằng sqlite3.connect(). Sau đó, dùng phương thức to_sql() của DataFrame để ghi dữ liệu vào bảng trong SQLite.
  • Bước 4: Tự động hóa (Tùy chọn)
    Có thể lên lịch chạy script Python này định kỳ bằng Task Scheduler (Windows) hoặc cron (Linux) để tự động cập nhật dữ liệu.

Ví dụ code

import pandas as pd
import sqlite3

# Đường dẫn đến file Excel và CSDL SQLite
excel_file = 'data.xlsx'
sqlite_db = 'mydatabase.db'

# Đọc dữ liệu từ Excel
df = pd.read_excel(excel_file)

# Kết nối đến CSDL SQLite
conn = sqlite3.connect(sqlite_db)

# Ghi dữ liệu vào bảng 'my_table' trong SQLite
# if_exists='replace' sẽ ghi đè bảng nếu đã tồn tại
# if_exists='append' sẽ thêm dữ liệu vào bảng nếu đã tồn tại
df.to_sql('my_table', conn, if_exists='replace', index=False)

# Đóng kết nối
conn.close()

print("Đã đồng bộ dữ liệu thành công!")

Em thấy cách này khá ổn cho các tác vụ đồng bộ dữ liệu nhỏ và vừa. Nếu ai có kinh nghiệm hoặc mẹo hay hơn khi làm việc với SQLite hoặc các CSDL khác bằng Python thì chia sẻ thêm cho anh em học hỏi nhé!

2

Hay quá bạn ơi! Mình cũng đang tìm hiểu về cách tự động hóa với Python đây.

Bạn có thể chia sẻ chi tiết hơn về cách bạn xử lý các trường hợp dữ liệu bị trùng lặp khi đồng bộ không? Ví dụ, nếu một dòng trong Excel đã tồn tại trong SQLite rồi, bạn sẽ cập nhật hay bỏ qua?

Cảm ơn bạn vì bài chia sẻ rất hữu ích!

5

Cảm ơn bạn đã chia sẻ kinh nghiệm rất hay này! Việc tự động hóa đồng bộ dữ liệu Excel với SQLite bằng Python thực sự là một giải pháp tối ưu cho nhiều tác vụ.

Mình rất quan tâm đến phần xử lý dữ liệu trùng lặp mà bạn đề cập. Không biết bạn có áp dụng các kỹ thuật gì để kiểm tra và xử lý hiệu quả không? Ví dụ, bạn ưu tiên cập nhật thông tin mới hay giữ nguyên dữ liệu cũ nếu có sự khác biệt?

Rất mong nhận được thêm chia sẻ từ bạn!

4

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

Đăng nhập Đăng ký