Chào các bạn,
Dạo gần đây mình có làm việc nhiều với Python để xử lý dữ liệu trước khi đưa vào báo cáo Excel. Sau khi có được bảng dữ liệu sạch sẽ, bước tiếp theo là tạo biểu đồ để trực quan hóa. Thay vì copy-paste thủ công, mình đã tìm hiểu cách tự động hóa việc này bằng Python luôn. Chia sẻ với mọi người để cùng tham khảo nhé.
Mình dùng thư viện openpyxl để thao tác với file Excel. Thư viện này cho phép mình tạo biểu đồ trực tiếp từ dữ liệu có sẵn trong bảng tính. Cách làm khá đơn giản:
- Chuẩn bị dữ liệu trong một sheet Excel.
- Sử dụng
openpyxlđể đọc dữ liệu, xác định vùng dữ liệu cần vẽ biểu đồ. - Tạo đối tượng biểu đồ (ví dụ: biểu đồ cột, biểu đồ đường).
- Thiết lập các thuộc tính cho biểu đồ như tiêu đề, nhãn trục, màu sắc.
- Thêm biểu đồ vào một sheet khác hoặc ngay bên cạnh dữ liệu gốc.
Ví dụ, để tạo một biểu đồ cột đơn giản:
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
# Tạo một workbook mới
wb = Workbook()
ws = wb.active
# Giả sử có dữ liệu trong sheet
ws.append(['Tháng', 'Doanh thu'])
ws.append(['1', 100])
ws.append(['2', 150])
ws.append(['3', 120])
# Tạo biểu đồ cột
chart = BarChart()
chart.type = 'col'
chart.style = 10
chart.title = 'Biểu đồ doanh thu'
chart.y_axis.title = 'Doanh thu'
chart.x_axis.title = 'Tháng'
# Xác định vùng dữ liệu
data = Reference(ws, min_col=2, min_row=1, max_row=4)
cats = Reference(ws, min_col=1, min_row=2, max_row=4)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
# Thêm biểu đồ vào sheet
ws.add_chart(chart, 'E5')
# Lưu file
wb.save('bieu_do_doanh_thu.xlsx')
Cách này giúp mình tiết kiệm được kha khá thời gian, đặc biệt khi cần tạo nhiều biểu đồ hoặc cập nhật biểu đồ thường xuyên. Nếu có kinh nghiệm hay tips gì hay hơn, mọi người chia sẻ thêm nhé!