Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Tự động hóa cập nhật dữ liệu Excel từ PostgreSQL bằng Python

Kiều Khả Phước 04/04/2026 09:28 381 lượt xem 3 trả lời

Chào mọi người,

Dạo gần đây mình có làm việc với PostgreSQL và cần cập nhật dữ liệu từ đây vào Excel một cách tự động. Sau một thời gian tìm hiểu, mình đã tìm ra cách kết hợp Python với thư viện psycopg2 để làm việc này. Mình muốn chia sẻ lại cho anh em nào đang cần.

Về cơ bản, quy trình sẽ như sau:

  • Sử dụng psycopg2 để kết nối tới cơ sở dữ liệu PostgreSQL.
  • Viết câu truy vấn SQL để lấy dữ liệu cần thiết.
  • Sử dụng thư viện pandas để đọc dữ liệu từ PostgreSQL vào DataFrame.
  • Lưu DataFrame này thành file Excel.

Đây là một đoạn code ví dụ:

import psycopg2
import pandas as pd

# Thông tin kết nối PostgreSQL
db_params = {
    "database": "your_db",
    "user": "your_user",
    "password": "your_password",
    "host": "your_host",
    "port": "your_port"
}

sql_query = "SELECT * FROM your_table;"

try:
    conn = psycopg2.connect(**db_params)
    cursor = conn.cursor()

    # Đọc dữ liệu vào pandas DataFrame
    df = pd.read_sql(sql_query, conn)

    # Lưu DataFrame vào file Excel
    df.to_excel("output_data.xlsx", index=False)

    print("Dữ liệu đã được cập nhật thành công vào output_data.xlsx")

except (Exception, psycopg2.Error) as error:
    print("Lỗi khi kết nối hoặc truy vấn PostgreSQL:", error)

finally:
    if conn:
        cursor.close()
        conn.close()
        print("Kết nối PostgreSQL đã được đóng.")

Anh em có thể tùy chỉnh câu truy vấn SQL và tên file Excel cho phù hợp với nhu cầu của mình. Nếu cần tự động hóa chạy script này định kỳ, có thể dùng Task Scheduler trên Windows hoặc cron job trên Linux.

Hy vọng chia sẻ này hữu ích cho mọi người!

5

Tuyệt vời! Mình cũng đang tìm hiểu về cách tự động hóa cập nhật dữ liệu, bài viết của bạn đúng là "cứu cánh" cho nhiều anh em đây.

Mình có một câu hỏi nhỏ, không biết bạn đã thử dùng sqlalchemy chưa? Thư viện này cũng hỗ trợ kết nối đến nhiều loại CSDL khác nhau và có thể làm việc tốt với pandas. Không biết nó có ưu điểm hay nhược điểm gì so với psycopg2 trong trường hợp của bạn không? Rất mong bạn chia sẻ thêm!

0

Hay quá bạn ơi! Mình cũng đang đau đầu vụ cập nhật dữ liệu từ DB lên Excel đây. Bài viết của bạn chi tiết quá, nhất là phần dùng pandas để đọc dữ liệu vào DataFrame.

Cho mình hỏi nhỏ, bạn có gặp khó khăn gì khi xử lý các kiểu dữ liệu phức tạp từ PostgreSQL sang Excel không? Ví dụ như các trường kiểu JSONB chẳng hạn. Chia sẻ thêm kinh nghiệm nhé!

0

Hay quá bạn ơi! Bài viết của bạn rất hữu ích cho những ai đang cần tự động hóa cập nhật dữ liệu từ PostgreSQL vào Excel. Mình cũng từng gặp tình huống tương tự và hiểu được sự "vất vả" khi làm thủ công.

Việc sử dụng pandas để đọc dữ liệu vào DataFrame rồi lưu ra Excel đúng là một cách làm hiệu quả. Mình có một thắc mắc nhỏ, không biết bạn có gặp vấn đề gì với việc định dạng ngày giờ (datetime) khi chuyển từ PostgreSQL sang Excel không? Đôi khi nó hay bị sai múi giờ hoặc định dạng không như ý muốn. Chia sẻ thêm kinh nghiệm xử lý vụ này nhé!

2

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

Đăng nhập Đăng ký