Chào các bác, dạo này em đang mày mò với Python trong Excel và có một vấn đề muốn nhờ mọi người góp ý ạ.
Công việc của em là phải tạo các báo cáo định kỳ, và thường xuyên phải định dạng các ô theo điều kiện (ví dụ: tô màu đỏ cho giá trị âm, tô màu xanh cho giá trị dương, hoặc định dạng số theo từng loại).
Trước đây thì em toàn làm thủ công hoặc dùng Conditional Formatting trong Excel. Tuy nhiên, với file báo cáo ngày càng lớn và yêu cầu định dạng phức tạp hơn, em nghĩ đến việc dùng Python để tự động hóa phần này.
Em đã thử qua một số ví dụ trên mạng và thấy có thể dùng thư viện openpyxl hoặc xlsxwriter để ghi đè lên file Excel có sẵn hoặc tạo file mới với các định dạng mong muốn. Ví dụ đơn giản như tô màu cho một ô:
from openpyxl import Workbook
from openpyxl.styles import PatternFill
wb = Workbook()
ws = wb.active
red_fill = PatternFill(start_color='FFFF0000', end_color='FFFF0000', fill_type='solid')
cell = ws['A1']
cell.value = -100
cell.fill = red_fill
wb.save('formatted_report.xlsx')Nhưng để áp dụng cho toàn bộ một cột hoặc nhiều cột với các điều kiện khác nhau thì em vẫn đang loay hoay. Em muốn hỏi là:
- Các bác có kinh nghiệm gì khi dùng Python để định dạng báo cáo Excel theo điều kiện không ạ?
- Có thư viện nào khác hoặc cách tiếp cận nào hiệu quả hơn
openpyxlhayxlsxwritercho việc này không? - Liệu có cách nào để