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!