Đăng nhập

Bài 28: Làm việc với Excel bằng Python

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

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.