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ụngpandas.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ằngsqlite3.connect(). Sau đó, dùng phương thứcto_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é!