Menu

Tự động hóa cập nhật dữ liệu Excel từ SQLite bằng Python - Chia sẻ kinh nghiệm

Lộc Thu Năng 09/04/2026 18:57 210 lượt xem 1 trả lời

Chào các bác, dạo này em đang làm việc với một dự án nhỏ cần lưu trữ dữ liệu dạng cấu trúc nhưng không muốn cài đặt các CSDL nặng nề như SQL Server hay MySQL. Sau khi tìm hiểu, em quyết định dùng SQLite, một CSDL nhẹ và lưu trữ dưới dạng file duy nhất. Tuy nhiên, việc cập nhật dữ liệu thủ công từ file SQLite vào Excel khá tốn thời gian.

Em đã mày mò và viết một đoạn script Python nhỏ để tự động hóa việc này. Mục đích là để mỗi lần chạy script, dữ liệu mới nhất từ bảng trong SQLite sẽ được ghi đè hoặc cập nhật vào một file Excel cụ thể.

Các bước chính em thực hiện như sau:

  • Sử dụng thư viện sqlite3 để kết nối và truy vấn dữ liệu từ file .db của SQLite.
  • Sử dụng thư viện pandas để đọc dữ liệu từ SQLite vào DataFrame.
  • Sử dụng phương thức to_excel của pandas để ghi DataFrame ra file Excel. Em thường dùng tham số index=False để không ghi chỉ số dòng của DataFrame vào Excel và if_sheet_exists='replace' để ghi đè sheet nếu nó đã tồn tại.

Đây là đoạn code ví dụ (em đã lược bớt một số phần để dễ nhìn):

import sqlite3
import pandas as pd

DB_FILE = 'my_database.db'
EXCEL_FILE = 'report.xlsx'
TABLE_NAME = 'my_data'
SHEET_NAME = 'Data'

def update_excel_from_sqlite():
    try:
        conn = sqlite3.connect(DB_FILE)
        query = f"SELECT * FROM {TABLE_NAME}"
        df = pd.read_sql_query(query, conn)
        conn.close()

        with pd.ExcelWriter(EXCEL_FILE, engine='openpyxl', if_sheet_exists='replace') as writer:
            df.to_excel(writer, sheet_name=SHEET_NAME, index=False)
        print(f"Cập nhật dữ liệu thành công vào {EXCEL_FILE} - Sheet: {SHEET_NAME}")

    except Exception as e:
        print(f"Lỗi xảy ra: {e}")

update_excel_from_sqlite()

Cách này rất tiện lợi, đặc biệt khi dữ liệu nguồn thay đổi thường xuyên. Có bác nào đã từng làm tương tự với SQLite hoặc các CSDL file khác chưa? Chia sẻ thêm kinh nghiệm cho anh em với ạ!

4

Hay quá bạn ơi! Mình cũng đang đau đầu với việc đồng bộ dữ liệu giữa các nguồn khác nhau. Dùng SQLite đúng là một lựa chọn thông minh cho các dự án nhỏ, gọn nhẹ mà hiệu quả.

Bạn có thể chia sẻ chi tiết hơn về đoạn script Python đó không? Đặc biệt là phần xử lý ghi đè dữ liệu vào Excel ấy. Mình đang tìm cách làm tương tự để cập nhật báo cáo hàng ngày.

Cảm ơn bạn đã chia sẻ kinh nghiệm quý báu!

1

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

Đăng nhập Đăng ký