Menu

Tự động hóa định dạng bảng dữ liệu Excel bằng Python - Tiết kiệm thời gian đáng kể!

Xuân Chính Thơ 14/06/2026 06:30 432 lượt xem 1 trả lời

Chào mọi người, hôm nay mình muốn chia sẻ một kinh nghiệm cá nhân khi làm việc với Excel, đặc biệt là khâu định dạng bảng dữ liệu. Như các bạn đã biết, việc định dạng thủ công cho các bảng dữ liệu lớn, lặp đi lặp lại có thể tốn rất nhiều thời gian và dễ gây sai sót. Gần đây, mình có bắt đầu tìm hiểu và áp dụng Python trong Excel để giải quyết vấn đề này và thấy hiệu quả rõ rệt.

Thay vì ngồi click chuột hàng giờ để tô màu, căn lề, kẻ viền, mình viết một đoạn script Python nhỏ để tự động hóa toàn bộ quá trình. Ví dụ, mình có thể quy định rõ:

  • Tô màu xen kẽ các dòng để dễ nhìn.
  • In đậm tiêu đề cột.
  • Căn chỉnh văn bản trong các ô theo ý muốn (trái, phải, giữa).
  • Tự động điều chỉnh độ rộng cột cho vừa với nội dung.
  • Áp dụng định dạng số (ví dụ: thêm dấu phẩy hàng nghìn, định dạng tiền tệ).

Script của mình trông khá đơn giản, ví dụ như thế này:

import pandas as pd

df = pd.read_excel('du_lieu.xlsx')

# Giả sử có một hàm định dạng tùy chỉnh
def dinh_dang_bang(writer, sheet_name):
    workbook = writer.book
    worksheet = writer.sheets[sheet_name]
    
    # Định dạng tiêu đề
    header_format = workbook.add_format({'bold': True, 'align': 'center', 'valign': 'vcenter', 'bg_color': '#DDEBF7'})
    for col_num, value in enumerate(df.columns.values):
        worksheet.write(0, col_num, value, header_format)

    # Định dạng dòng xen kẽ (ví dụ đơn giản)
    for row_num in range(1, len(df) + 1):
        if row_num % 2 == 0:
            row_format = workbook.add_format({'bg_color': '#F2F2F2'})
            worksheet.set_row(row_num, None, row_format)

    # Tự động điều chỉnh độ rộng cột
    for col_num, value in enumerate(df.columns.values):
        max_len = df[value].astype(str).str.len().max()
        # Thêm một chút khoảng trống
        adjusted_width = (max_len + 2)
        worksheet.set_column(col_num, col_num, adjusted_width)

# Sử dụng ExcelWriter để áp dụng định dạng
with pd.ExcelWriter('du_lieu_da_dinh_dang.xlsx', engine='xlsxwriter') as writer:
    df.to_excel(writer, sheet_name='Sheet1', index=False)
    dinh_dang_bang(writer, 'Sheet1')

Tất nhiên, đoạn code trên chỉ là ví dụ minh họa cơ bản. Các bạn có thể tùy biến rất nhiều theo nhu cầu. Việc này giúp mình tiết kiệm cả ngày làm việc, đặc biệt khi phải xử lý nhiều file báo cáo tương tự nhau. Có ai đã áp dụng Python để định dạng Excel chưa, chia sẻ thêm kinh nghiệm nhé!

0

Hay quá bạn ơi! Mình cũng đang đau đầu với việc định dạng bảng dữ liệu Excel đây. Bạn có thể chia sẻ cụ thể hơn về đoạn script Python bạn dùng không? Ví dụ như bạn dùng thư viện nào và những thao tác định dạng cơ bản nào mà script có thể xử lý được? Cảm ơn bạn nhiều!

3

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

Đăng nhập Đăng ký