Chào các anh em trong diễn đàn,
Dạo này công việc của mình liên quan nhiều đến việc tạo báo cáo Excel hàng tuần, và mình nhận thấy việc làm thủ công tốn khá nhiều thời gian. Sau khi tìm hiểu, mình quyết định sử dụng Python để tự động hóa phần này, cụ thể là dùng thư viện openpyxl để thao tác với file Excel.
Mục tiêu của mình là tạo một script Python có thể tự động tạo ra một file báo cáo Excel mới dựa trên dữ liệu có sẵn (ví dụ: lấy từ một file CSV hoặc database). Script này sẽ thực hiện các công việc như:
- Đọc dữ liệu nguồn.
- Tổng hợp và tính toán các chỉ số cần thiết.
- Tạo các sheet mới trong file Excel báo cáo.
- Định dạng bảng, cell, thêm biểu đồ (nếu cần).
- Lưu file báo cáo với tên có chứa ngày tháng để dễ quản lý.
Mình đã thử nghiệm và thành công với việc đọc dữ liệu từ file CSV và tạo một báo cáo đơn giản. Dưới đây là một đoạn code ví dụ minh họa cách tạo một sheet mới và ghi dữ liệu:
import openpyxl
from datetime import datetime
# Tạo workbook mới
workbook = openpyxl.Workbook()
# Chọn sheet active
sheet = workbook.active
sheet.title = "Bao Cao Tuan"
# Dữ liệu mẫu
data = [
["ID", "Ten San Pham", "So Luong", "Doanh Thu"],
[1, "Ao Phong", 100, 5000000],
[2, "Quan Jean", 50, 7500000],
[3, "Mu Luoi Trai", 200, 2000000]
]
# Ghi dữ liệu vào sheet
for row_data in data:
sheet.append(row_data)
# Định dạng header
for col_num in range(1, sheet.max_column + 1):
cell = sheet.cell(row=1, column=col_num)
cell.font = openpyxl.styles.Font(bold=True)
# Lấy ngày hiện tại để đặt tên file
current_date = datetime.now().strftime("%Y-%m-%d")
file_name = f"BaoCaoTuan_{current_date}.xlsx"
# Lưu file
try:
workbook.save(file_name)
print(f"Da luu bao cao thanh cong: {file_name}")
except Exception as e:
print(f"Loi khi luu file: {e}")
Mình nghĩ cách này rất hữu ích cho các bạn thường xuyên phải làm báo cáo Excel. Các bạn có kinh nghiệm gì với openpyxl hoặc các thư viện Python khác để tương tác với Excel (như pandas) thì chia sẻ thêm nhé!