×

openpyxl là thư viện làm việc với file Excel (.xlsx) hiệu quả trong Python

Openpyxl là một thư viện Python mạnh mẽ và linh hoạt, giúp người dùng quản lý và thao tác với các tệp Excel (.xlsx) một cách dễ dàng và hiệu quả. Với khả năng đọc, ghi, và sửa đổi nội dung của các tệp Excel, openpyxl trở thành một công cụ phổ biến đối với các nhà phát triển và phân tích dữ liệu. Trong bài viết này, chúng ta sẽ tìm hiểu sâu về openpyxl, từ cài đặt, cách sử dụng, cho đến những tính năng nổi bật mà thư viện này mang lại.

Cài đặt openpyxl

Để bắt đầu sử dụng openpyxl, trước tiên, bạn cần phải cài đặt thư viện này. Bạn có thể sử dụng pip để cài đặt:

pip install openpyxl

Sau khi cài đặt thành công, bạn có thể kiểm tra xem thư viện đã được cài đúng chưa bằng cách mở trình thông dịch Python và nhập lệnh sau:

import openpyxl
print(openpyxl.__version__)

Nếu không có lỗi xuất hiện và bạn thấy phiên bản của openpyxl, tức là thư viện đã được cài đặt thành công.

Đọc tệp Excel với openpyxl

Một trong những tính năng cơ bản của openpyxl là khả năng đọc dữ liệu từ tệp Excel. Bạn có thể mở một tệp Excel và đọc nội dung của nó như sau:

from openpyxl import load_workbook

# Mở tệp Excel
workbook = load_workbook('example.xlsx')

# Chọn sheet
sheet = workbook.active

# Đọc dữ liệu từ ô
value = sheet['A1'].value
print(value)

Trên đây là cách bạn có thể mở một tệp Excel và đọc giá trị từ ô A1. Bạn cũng có thể lặp qua các hàng và cột để lấy tất cả dữ liệu trong bảng tính.

Ghi dữ liệu vào Excel

Ngoài việc đọc dữ liệu, openpyxl cũng cho phép bạn ghi dữ liệu vào tệp Excel. Dưới đây là cách đơn giản để ghi dữ liệu vào Excel:

from openpyxl import Workbook

# Tạo một workbook mới
workbook = Workbook()

# Chọn sheet
sheet = workbook.active

# Ghi dữ liệu vào ô
sheet['A1'] = 'Hello, World!'
sheet['B1'] = 12345

# Lưu tệp vào máy tính
workbook.save('output.xlsx')

Đoạn mã trên sẽ tạo một tệp Excel mới có chứa một số dữ liệu cơ bản.

Làm việc với nhiều sheet

Openpyxl cho phép bạn làm việc với nhiều sheet trong một tệp Excel. Bạn có thể thêm, xóa hoặc chuyển đổi giữa các sheet một cách dễ dàng. Dưới đây là ví dụ về cách tạo nhiều sheet:

from openpyxl import Workbook

# Tạo một workbook mới
workbook = Workbook()

# Thêm các sheet mới
sheet1 = workbook.create_sheet('Sheet1')
sheet2 = workbook.create_sheet('Sheet2')

# Ghi dữ liệu vào sheet1
sheet1['A1'] = 'Dữ liệu sheet 1'

# Ghi dữ liệu vào sheet2
sheet2['A1'] = 'Dữ liệu sheet 2'

# Lưu tệp
workbook.save('multiple_sheets.xlsx')

Định dạng ô

Thư viện openpyxl không chỉ cho phép thao tác với dữ liệu mà còn cung cấp các công cụ định dạng ô. Bạn có thể thay đổi kiểu chữ, màu nền, đường viền và còn nhiều định dạng khác:

from openpyxl.styles import Font, Color, PatternFill

# Mở tệp Excel
workbook = load_workbook('example.xlsx')
sheet = workbook.active

# Định dạng ô A1
font = Font(name='Arial', bold=True, italic=True, color='FF0000')  # Định dạng chữ
fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')  # Màu nền vàng

sheet['A1'].font = font
sheet['A1'].fill = fill

# Lưu lại tệp
workbook.save('formatted_example.xlsx')

Tạo biểu đồ

Openpyxl cũng có khả năng tạo biểu đồ trong Excel. bạn có thể thêm biểu đồ để trực quan hóa dữ liệu:

from openpyxl.chart import BarChart, Reference

# Tạo một workbook mới
workbook = Workbook()
sheet = workbook.active

# Thêm dữ liệu
data = [
    ['Năm', 'Doanh thu'],
    [2020, 3000],
    [2021, 4000],
    [2022, 5000],
]
for row in data:
    sheet.append(row)

# Tạo biểu đồ
chart = BarChart()
values = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=4)
categories = Reference(sheet, min_col=1, min_row=2, max_row=4)

chart.add_data(values, titles_from_data=True)
chart.set_categories(categories)

# Thêm biểu đồ vào sheet
sheet.add_chart(chart, "E5")

# Lưu tệp
workbook.save('chart_example.xlsx')

Kết luận

Openpyxl là một thư viện cực kỳ mạnh mẽ và linh hoạt mà bất kỳ ai làm việc với Python và Excel nên biết. Từ việc đọc và ghi tệp Excel, tạo ra các sheet, định dạng ô cho đến việc thêm biểu đồ, openpyxl cung cấp một loạt các tính năng hữu ích cho người dùng. Hy vọng rằng qua bài viết này, bạn đã có được cái nhìn tổng quan và các thông tin cần thiết để bắt đầu sử dụng openpyxl trong các dự án của mình. Hãy khám phá và học hỏi để khai thác hết tiềm năng mà thư viện này mang lại!

Comments