Chào các anh em, hôm nay mình muốn chia sẻ một chút kinh nghiệm nhỏ trong việc tự động hóa xử lý dữ liệu Excel bằng Python, cụ thể là cách cập nhật giá trị từ một file CSV vào file Excel chính.
Dạo này công việc của mình có liên quan đến việc cập nhật dữ liệu giá sản phẩm hàng ngày từ một file CSV riêng biệt vào file báo cáo Excel chính. Việc làm thủ công này khá tốn thời gian và dễ sai sót, nên mình đã tìm hiểu và áp dụng Python để giải quyết.
Cách làm của mình khá đơn giản, sử dụng thư viện pandas để đọc cả hai file, sau đó thực hiện việc cập nhật.
Các bước cơ bản:
- Đọc file Excel báo cáo chính vào một DataFrame.
- Đọc file CSV chứa dữ liệu cập nhật vào một DataFrame khác.
- Sử dụng phương thức
mergehoặcupdatecủa pandas để cập nhật dữ liệu. Ví dụ, nếu bạn muốn cập nhật dựa trên một cột khóa chung (ví dụ: Mã sản phẩm):
import pandas as pd
# Đọc file Excel báo cáo
df_report = pd.read_excel('bao_cao.xlsx')
# Đọc file CSV dữ liệu cập nhật
df_update = pd.read_csv('du_lieu_cap_nhat.csv')
# Giả sử 'MaSP' là cột khóa chung
# Cập nhật trực tiếp các cột giá trị từ df_update vào df_report
df_report.set_index('MaSP', inplace=True)
df_update.set_index('MaSP', inplace=True)
df_report.update(df_update)
# Reset index nếu cần
df_report.reset_index(inplace=True)
# Lưu lại file Excel báo cáo đã cập nhật
df_report.to_excel('bao_cao_da_cap_nhat.xlsx', index=False)
Cách này giúp mình tiết kiệm rất nhiều thời gian và đảm bảo tính chính xác. Anh em nào có kinh nghiệm hay cách làm hay hơn thì chia sẻ thêm nhé!