Mục Tiêu và Lợi Ích Của Bài Học
Trong bài học này, bạn sẽ học cách sử dụng Pandas để ghi dữ liệu vào Excel, cùng với các cách định dạng và tùy chỉnh cơ bản cho bảng tính. Bạn sẽ sử dụng một file dữ liệu Excel có sẵn chứa thông tin về các sản phẩm như Tên sản phẩm, Doanh thu, Chi phí, Ngày bán, và Khu vực.
Dưới đây là hướng dẫn chi tiết các bước để xử lý dữ liệu và tùy chỉnh bảng Excel, giúp bạn dễ dàng quản lý và trình bày thông tin.
Lợi ích:
- Tự động hóa việc ghi và định dạng dữ liệu vào Excel.
- Tạo bảng tính Excel có thể dễ dàng chia sẻ và sử dụng trong công việc hàng ngày.
- Quản lý dữ liệu lớn và thực hiện phân tích nhanh chóng nhờ khả năng tùy chỉnh định dạng của bảng tính.

1. Đọc Dữ Liệu Từ Excel
Giả sử bạn đã có một file dữ liệu Excel có tên là SalesData.xlsx với cấu trúc như sau:
| ProductName | SalesAmount | Cost | SaleDate | Region |
|---|---|---|---|---|
| Laptop | 1200 | 800 | 1/1/2023 | North |
| Phone | 800 | 500 | 1/2/2023 | South |
| Headphones | 150 | 80 | 1/3/2023 | East |
| Tablet | 450 | 300 | 1/4/2023 | West |
| Monitor | 300 | 200 | 1/5/2023 | North |
| Keyboard | 100 | 50 | 1/6/2023 | South |
| Mouse | 50 | 30 | 1/7/2023 | East |
| Printer | 250 | 150 | 1/8/2023 | West |
| Smartwatch | 200 | 120 | 1/9/2023 | North |
| Camera | 500 | 350 | 1/10/2023 | South |
| Speaker | 100 | 70 | 1/11/2023 | East |
| USB Drive | 40 | 25 | 1/12/2023 | West |
| Power Bank | 60 | 40 | 1/13/2023 | North |
| VR Headset | 300 | 180 | 1/14/2023 | South |
| Air Purifier | 150 | 100 | 1/15/2023 | East |
| Laptop Stand | 40 | 20 | 1/16/2023 | West |
| Desk Chair | 150 | 80 | 1/17/2023 | North |
| Webcam | 60 | 35 | 1/18/2023 | South |
| External Hard Drive | 120 | 80 | 1/19/2023 | East |
| Projector | 800 | 500 | 1/20/2023 | West |
Bạn có thể sử dụng Pandas để đọc dữ liệu này từ file SalesData.xlsx. Dưới đây là cách đọc dữ liệu vào DataFrame:
import pandas as pd
# Đọc dữ liệu từ Excel
df = pd.read_excel('SalesData.xlsx')
# Hiển thị dữ liệu
print(df)
Sau khi đọc dữ liệu, bạn sẽ có DataFrame với các cột: ProductName, SalesAmount, Cost, SaleDate, và Region.
2. Ghi Dữ Liệu Vào Excel
Sau khi làm việc với dữ liệu trong Python, bạn có thể dễ dàng ghi lại nó vào một file Excel mới. Dưới đây là cách ghi dữ liệu từ DataFrame vào Excel:
# Ghi dữ liệu vào file Excel mới
df.to_excel('SalesData_output.xlsx', index=False)
Lệnh này sẽ ghi toàn bộ dữ liệu vào file “SalesData_output.xlsx”, và tham số index=False giúp loại bỏ chỉ số (index) mặc định của Pandas.
3. Tùy Chỉnh Định Dạng Bảng Excel
Một phần quan trọng khi làm việc với Excel là định dạng bảng tính để dữ liệu dễ đọc và dễ hiểu. Bạn có thể sử dụng openpyxl để tùy chỉnh định dạng bảng tính.
a. Định Dạng Cột Doanh Thu: In Đậm và Thay Đổi Màu Sắc
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill
# Mở file Excel vừa tạo
wb = load_workbook('SalesData_output.xlsx')
ws = wb.active
# Định dạng cột "SalesAmount" (Doanh thu)
for cell in ws['B']: # Cột B là SalesAmount
if cell.row == 1: # Tiêu đề cột
# Làm đậm chữ và thay đổi màu nền cho tiêu đề cột
cell.font = Font(bold=True, color="FFFFFF")
cell.fill = PatternFill(start_color="4F81BD", end_color="4F81BD", fill_type="solid")
else:
# Màu chữ đen cho các hàng dữ liệu
cell.font = Font(bold=False, color="000000")
# Lưu lại file Excel sau khi thay đổi
wb.save('SalesData_output_formatted.xlsx')
Trong đoạn mã trên:
- Font được sử dụng để làm đậm và thay đổi màu sắc của chữ.
- PatternFill được dùng để thay đổi màu nền (fill color) cho các ô trong cột SalesAmount.
b. Điều Chỉnh Kích Thước Cột
Để đảm bảo rằng dữ liệu trong các cột được hiển thị đầy đủ, bạn có thể thay đổi kích thước các cột như sau:
# Điều chỉnh kích thước cột
ws.column_dimensions['A'].width = 20 # Cột A: ProductName
ws.column_dimensions['B'].width = 15 # Cột B: SalesAmount
ws.column_dimensions['C'].width = 15 # Cột C: Cost
ws.column_dimensions['D'].width = 15 # Cột D: SaleDate
ws.column_dimensions['E'].width = 15 # Cột E: Region
# Lưu lại file Excel sau khi điều chỉnh
wb.save('SalesData_output_formatted.xlsx')
Điều này sẽ thay đổi chiều rộng của các cột để đảm bảo dữ liệu được hiển thị rõ ràng.
4. Thêm Định Dạng Ngày Cho Cột SaleDate
Trong dữ liệu của bạn, cột SaleDate chứa các giá trị ngày tháng. Bạn có thể định dạng lại cột này sao cho ngày tháng hiển thị đúng định dạng:
# Định dạng ngày tháng cho cột SaleDate
for cell in ws['D']:
if cell.row != 1: # Bỏ qua tiêu đề cột
cell.number_format = 'MM/DD/YYYY'
# Lưu lại file Excel sau khi thay đổi
wb.save('SalesData_output_formatted.xlsx')
Câu lệnh trên sẽ đảm bảo rằng các giá trị ngày tháng trong cột SaleDate sẽ được hiển thị dưới định dạng MM/DD/YYYY.
5. Kết Luận
Sử dụng Pandas để ghi dữ liệu vào Excel và openpyxl để tùy chỉnh định dạng bảng tính là một cách tuyệt vời để tự động hóa quy trình quản lý và báo cáo dữ liệu. Những bước và ví dụ trong bài viết này sẽ giúp bạn dễ dàng áp dụng vào thực tế và tạo ra các bảng tính Excel có cấu trúc đẹp, dễ đọc và dễ sử dụng.
Từ việc đọc và ghi dữ liệu đến việc tùy chỉnh định dạng, bạn sẽ có khả năng tạo ra các báo cáo chuyên nghiệp và dễ dàng chia sẻ với đồng nghiệp hoặc khách hàng.
Hãy thử nghiệm với các dữ liệu của riêng bạn và tận dụng sức mạnh của Pandas và openpyxl để nâng cao hiệu quả công việc của bạn!