Bài học này là một kỹ năng cực kỳ thiết thực trong công việc, học tập và tự động hóa văn phòng: xử lý file Excel với Python.
Python không chỉ làm code, mà còn làm Excel
Nhiều người nghĩ “Excel là của kế toán”, nhưng thật ra:
Python + Excel = một combo cực mạnh để xử lý dữ liệu bảng, tự động báo cáo, trích xuất thống kê, phân tích, và hơn thế nữa.
Trong bài này, bạn sẽ học cách đọc – ghi – chỉnh sửa file .xlsx
hoàn toàn bằng Python, không cần mở Excel lên.
Mục tiêu bài học
- Cài và dùng thư viện
openpyxl
- Mở file Excel có sẵn và đọc nội dung
- Ghi dữ liệu vào bảng
- Tạo file Excel mới từ dữ liệu Python
- Một số thao tác thường dùng: tạo sheet, định dạng ô, chỉnh font
1. Cài thư viện openpyxl
pip install openpyxl
2. Tạo file Excel mới
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "Du Lieu"
# Ghi dữ liệu
ws['A1'] = "Tên"
ws['B1'] = "Điểm"
ws.append(["Nam", 8.5])
ws.append(["Linh", 9.0])
ws.append(["Tùng", 7.5])
# Lưu file
wb.save("diem_thi.xlsx")
print("✅ Đã tạo file diem_thi.xlsx")
3. Đọc dữ liệu từ file Excel
from openpyxl import load_workbook
wb = load_workbook("diem_thi.xlsx")
ws = wb.active
for row in ws.iter_rows(values_only=True):
print(row)
4. Truy cập ô cụ thể
print(ws["A2"].value) # Tên học sinh ở dòng 2
print(ws.cell(row=2, column=2).value) # Điểm ở dòng 2
5. Chỉnh sửa dữ liệu
ws["B2"] = 9.25 # Cập nhật điểm
wb.save("diem_thi.xlsx")
6. Tạo sheet mới và ghi dữ liệu vào
ws2 = wb.create_sheet("Thống kê")
ws2["A1"] = "Tổng số học sinh"
ws2["B1"] = ws.max_row - 1 # Trừ dòng tiêu đề
wb.save("diem_thi.xlsx")
7. Định dạng nâng cao (tùy chọn)
from openpyxl.styles import Font
ws["A1"].font = Font(bold=True, color="0000FF")
8. Bài tập luyện tập
Bài 1: Tạo file Excel chứa danh sách 10 nhân viên với tên và lương
Bài 2: Viết chương trình đọc file nhanvien.xlsx
và tính trung bình lương
Bài 3: Thêm cột “Thưởng” và tính 10% của lương
Bạn đã học được
- Tạo và lưu file Excel
- Đọc dữ liệu bảng bằng
iter_rows()
- Ghi, cập nhật, thêm sheet mới
- Format ô cơ bản (font, màu)
- Dùng
openpyxl
như một công cụ để tự động hóa thao tác bảng tính
Thảo luận