Menu

Tự động tạo biểu đồ Excel từ dữ liệu Python: Hướng dẫn nhanh

Mã Thị Chi 08/03/2026 21:52 430 lượt xem 1 trả lời

Chào các bạn, hôm nay mình muốn chia sẻ một chút về cách tự động hóa việc tạo biểu đồ trong Excel bằng Python. Dạo gần đây mình có làm việc nhiều với dữ liệu và nhận thấy việc vẽ biểu đồ thủ công tốn khá nhiều thời gian, đặc biệt khi dữ liệu thay đổi liên tục.

Sau một hồi tìm tòi, mình phát hiện ra thư viện openpyxl của Python có thể làm được điều này. Nó cho phép chúng ta tạo, chỉnh sửa file Excel, bao gồm cả việc chèn biểu đồ.

Dưới đây là một ví dụ đơn giản:

import openpyxl
from openpyxl.chart import BarChart, Reference

# Tạo workbook và worksheet mới
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "Biểu đồ"

# Dữ liệu mẫu
data = [
    ['Tháng', 'Doanh thu'],
    ['1', 100],
    ['2', 150],
    ['3', 120],
    ['4', 200],
    ['5', 180]
]

for row in data:
    ws.append(row)

# Tạo biểu đồ cột
chart = BarChart()
chart.title = "Doanh thu theo tháng"
chart.x_axis.title = "Tháng"
chart.y_axis.title = "Doanh thu"

# Lấy dữ liệu cho biểu đồ
values = Reference(ws, min_col=2, min_row=2, max_row=6)

# Thêm dữ liệu vào biểu đồ
chart.add_data(values, titles_from_data=False)

# Thiết lập nhãn trục X
cats = Reference(ws, min_col=1, min_row=2, max_row=6)
chart.set_categories(cats)

# Đặt biểu đồ vào worksheet
ws.add_chart(chart, "E2")

# Lưu file
wb.save("bieu_do_doanh_thu.xlsx")
print("Đã tạo biểu đồ thành công!")

Các bạn chỉ cần cài đặt thư viện openpyxl bằng lệnh pip install openpyxl là có thể chạy được đoạn code trên. Nó sẽ tạo ra một file Excel mới với dữ liệu và biểu đồ tương ứng. Cách này rất tiện cho việc tự động sinh báo cáo định kỳ.

Có bạn nào đã từng dùng Python để tương tác với Excel chưa? Chia sẻ thêm kinh nghiệm cho mọi người với nhé!

0

Hay quá bạn ơi! Mình cũng đang tìm cách tự động hóa việc này, nhất là với những file báo cáo lớn. Dùng openpyxl để chèn biểu đồ vào Excel đúng là một giải pháp hiệu quả.

Bạn có thể chia sẻ thêm về cách tùy chỉnh các thuộc tính của biểu đồ bằng openpyxl không? Ví dụ như thay đổi loại biểu đồ, thêm tiêu đề, nhãn trục, hay định dạng màu sắc chẳng hạn? Mình tò mò muốn biết thêm chi tiết!

0

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

Đăng nhập Đăng ký