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 trích xuất dữ liệu từ Excel sang SQL Server bằng Python và SQLAlchemy

Hùng Thúy Mạnh 27/03/2026 19:24 253 lượt xem 1 trả lời

Chào mọi người,

Mình đang tìm cách để tự động hóa việc trích xuất dữ liệu từ một file Excel lớn sang cơ sở dữ liệu SQL Server. Mình đã thử dùng Power Query nhưng cảm thấy hơi hạn chế khi cần xử lý phức tạp hoặc tùy chỉnh nhiều hơn.

Gần đây mình có tìm hiểu về Python và thư viện SQLAlchemy, có vẻ nó khá mạnh mẽ trong việc tương tác với các CSDL. Ý tưởng của mình là viết một script Python để đọc dữ liệu từ file Excel (có thể dùng thư viện Pandas), sau đó sử dụng SQLAlchemy để kết nối tới SQL Server và chèn dữ liệu vào bảng tương ứng.

Mình đã thử một đoạn code cơ bản như sau:

import pandas as pd
from sqlalchemy import create_engine

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

# Thông tin kết nối SQL Server (thay thế bằng thông tin của bạn)
server = 'your_server_name'
database = 'your_database_name'
username = 'your_username'
password = 'your_password'

# Chuỗi kết nối
conn_str = f'mssql+pyodbc://{username}:{password}@{server}/{database}?driver=ODBC+Driver+17+for+SQL+Server'
engine = create_engine(conn_str)

# Chèn dữ liệu vào bảng (thay 'ten_bang_cua_ban' bằng tên bảng thực tế)
df.to_sql('ten_bang_cua_ban', engine, if_exists='replace', index=False)

print('Đã chèn dữ liệu thành công!')

Tuy nhiên, mình gặp một số vấn đề:

  • Cách xử lý khi có dữ liệu trùng lặp? Mình muốn ghi đè hoặc cập nhật nếu có.
  • Làm thế nào để tối ưu hiệu năng khi file Excel có hàng trăm nghìn dòng?
  • Có cách nào để thực hiện các thao tác phức tạp hơn như cập nhật từng phần dữ liệu dựa trên điều kiện không?

Rất mong nhận được sự chia sẻ kinh nghiệm từ các anh chị em đã từng làm việc này, hoặc có bất kỳ gợi ý nào về cách tiếp cận khác hiệu quả hơn.

Cảm ơn mọi người đã đọc bài!

2

Hay quá bạn ơi! Ý tưởng dùng Python với SQLAlchemy để tự động hóa trích xuất dữ liệu từ Excel sang SQL Server rất khả thi và mạnh mẽ. Pandas thì đúng là "trùm" đọc dữ liệu Excel rồi.

Mình cũng từng làm qua việc này và thấy nó giải quyết được rất nhiều vấn đề mà Power Query khó "cân" hết được, đặc biệt là các logic xử lý dữ liệu phức tạp trước khi insert vào DB.

Bạn định xử lý những loại dữ liệu phức tạp nào trong Excel trước khi đưa lên SQL Server vậy? Chia sẻ thêm để mọi người cùng học hỏi nhé!

4

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

Đăng nhập Đăng ký