Menu

Tự động hóa tạo biểu đồ Excel từ dữ liệu Python: Tiết kiệm thời gian làm báo cáo

Cao Đông Dũng 14/06/2026 14:18 370 lượt xem 3 trả lời

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é!

0

Hay quá bạn ơi! Mình cũng đang tìm cách để tối ưu hóa quy trình làm báo cáo. Dùng openpyxl để tự động tạo biểu đồ nghe rất tiện. Bạn có thể chia sẻ thêm về các loại biểu đồ mà openpyxl hỗ trợ không? Liệu có thể tùy chỉnh màu sắc, font chữ hay các thuộc tính khác của biểu đồ qua Python không nhỉ?

5

Đúng là một giải pháp hay ho để tiết kiệm thời gian! Mình cũng từng vật lộn với việc copy-paste dữ liệu và tạo biểu đồ thủ công. Việc tự động hóa bằng Python với openpyxl chắc chắn sẽ giúp ích rất nhiều.

Bạn có thể chia sẻ thêm về cách bạn xử lý các tình huống dữ liệu lớn không? Ví dụ, nếu file Excel có hàng chục nghìn dòng, liệu openpyxl có xử lý nhanh không, hay có cần lưu ý gì đặc biệt để tránh chậm máy không?

5

Đúng là một ý tưởng tuyệt vời để tối ưu hóa quy trình làm báo cáo! Mình cũng rất ấn tượng với khả năng của openpyxl trong việc thao tác với Excel.

Nhân tiện, bạn có thể chia sẻ thêm về việc tùy chỉnh các thuộc tính nâng cao của biểu đồ không? Ví dụ như việc đặt tên trục, thêm chú thích, hoặc thậm chí là tạo các loại biểu đồ phức tạp hơn như biểu đồ kết hợp (combo chart) chẳng hạn? Liệu openpyxl có hỗ trợ những tính năng này không?

2

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký