Chào các anh em, mình đang làm một dự án cần trích xuất dữ liệu từ nhiều file Excel khác nhau và đưa vào một CSDL SQL Server để quản lý tập trung. Ban đầu mình định làm thủ công nhưng với số lượng file lớn thì rất tốn thời gian và dễ sai sót.
Sau khi tìm hiểu, mình quyết định dùng Python để tự động hóa quá trình này. Mình đã thử nghiệm và thấy khá hiệu quả, nên muốn chia sẻ lại với mọi người, hy vọng có thể giúp ích cho ai đang gặp vấn đề tương tự.
Các bước chính mình thực hiện:
- Sử dụng thư viện
pandasđể đọc dữ liệu từ file Excel. - Sử dụng thư viện
pyodbchoặcpymssqlđể kết nối và ghi dữ liệu vào SQL Server. - Xử lý các trường hợp dữ liệu bị thiếu, định dạng sai trước khi ghi vào CSDL.
Ví dụ đoạn code cơ bản để đọc file Excel:
import pandas as pd
excel_file = 'du_lieu_ban_hang.xlsx'
df = pd.read_excel(excel_file)
print(df.head())
Ví dụ kết nối và ghi vào SQL Server:
import pyodbc
# Thông tin kết nối SQL Server
server = 'your_server_name'
database = 'your_database_name'
username = 'your_username'
password = 'your_password'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
# Giả sử df là DataFrame đã đọc từ Excel
for index, row in df.iterrows():
cursor.execute('INSERT INTO YourTable (Column1, Column2) VALUES (?, ?)', row.Column1, row.Column2)
cnxn.commit()
print('Dữ liệu đã được ghi thành công!')
Mình mới chỉ dừng lại ở mức cơ bản, có thể còn nhiều cách tối ưu hơn. Anh em nào có kinh nghiệm hoặc gặp khó khăn gì trong quá trình này thì cùng thảo luận nhé!