Chào mọi người,
Dạo gần đây mình có làm việc với một dự án yêu cầu phải tự động cập nhật dữ liệu trong file Excel dựa trên một nguồn dữ liệu thay đổi liên tục (ví dụ: file CSV mới được tạo ra hàng ngày, hoặc dữ liệu từ một API). Ban đầu mình nghĩ đến việc dùng Power Query nhưng có vẻ hơi phức tạp khi nguồn dữ liệu không ổn định về cấu trúc. Sau đó, mình thử tìm hiểu và áp dụng Python vào thì thấy khá hiệu quả.
Ý tưởng là mình sẽ viết một script Python để:
- Đọc dữ liệu từ nguồn (file CSV, JSON, hoặc request từ API).
- Xử lý, làm sạch dữ liệu nếu cần.
- Mở file Excel đích và ghi đè hoặc cập nhật các sheet/vùng dữ liệu tương ứng.
Ví dụ đơn giản, nếu mình có một file CSV mới tên là data_mới.csv và muốn cập nhật nó vào sheet Sheet1 của file BaoCao.xlsx, mình có thể dùng đoạn code:
import pandas as pd
# Đọc dữ liệu từ file CSV
df_moi = pd.read_csv('data_mới.csv')
# Đường dẫn đến file Excel
file_excel = 'BaoCao.xlsx'
# Sử dụng ExcelWriter để ghi đè sheet
with pd.ExcelWriter(file_excel, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
df_moi.to_excel(writer, sheet_name='Sheet1', index=False)
print('Đã cập nhật dữ liệu thành công!')Cách này giúp mình tiết kiệm rất nhiều thời gian so với việc copy-paste thủ công, đặc biệt khi file nguồn có dung lượng lớn hoặc thay đổi thường xuyên.
Không biết có anh em nào đã áp dụng Python để tự động hóa việc cập nhật dữ liệu Excel theo cách tương tự hoặc có cách nào hay hơn không? Cùng thảo luận nhé!