Làm việc với tệp Excel: Hướng dẫn chọn thư viện phù hợp
By hientd, at: 23:33 Ngày 14 tháng 11 năm 2023
Thời gian đọc ước tính: __READING_TIME__ minutes


1. Giới thiệu
Tệp Excel được sử dụng rộng rãi để lưu trữ và sắp xếp dữ liệu, làm cho chúng trở thành định dạng phổ biến cho hoạt động kinh doanh và phân tích dữ liệu. Việc phân tích cú pháp, hoặc đọc và thao tác, các tệp Excel bằng lập trình là một kỹ năng quan trọng đối với nhiều nhà phát triển và nhà khoa học dữ liệu. Trong bài viết này, chúng ta sẽ khám phá các thư viện Python khác nhau để phân tích cú pháp các tệp Excel và hướng dẫn bạn cách chọn thư viện phù hợp với nhu cầu của mình.
2. Chọn thư viện phù hợp
Openpyxl
Openpyxl là một thư viện mạnh mẽ để làm việc với các tệp Excel trong Python. Nó hỗ trợ cả việc đọc và ghi các tệp Excel và tương thích với Excel 2010 và các phiên bản mới hơn. Openpyxl đặc biệt hữu ích để xử lý các tệp Excel phức tạp với nhiều sheet và định dạng khác nhau.
Pandas
Pandas là một thư viện thao tác dữ liệu đa năng cũng có thể xử lý các tệp Excel một cách dễ dàng. Nó cung cấp giao diện cấp cao để làm việc với dữ liệu dạng bảng và tích hợp liền mạch với Excel. Pandas rất hiệu quả trong các tác vụ phân tích dữ liệu và phù hợp với các tập dữ liệu lớn.
Xlsxwriter
Xlsxwriter là một mô-đun Python để tạo các tệp Excel, làm cho nó trở thành một lựa chọn tốt cho các trường hợp bạn cần tạo các tệp Excel mới thay vì phân tích cú pháp các tệp hiện có. Nó cung cấp khả năng kiểm soát chi tiết đối với định dạng và rất phù hợp để tạo báo cáo và bảng điều khiển.
Xlrd
Xlrd là một thư viện nhẹ tập trung vào việc đọc dữ liệu từ các tệp Excel. Mặc dù nó không có khả năng ghi vào các tệp Excel, nhưng nó rất hiệu quả trong việc trích xuất dữ liệu từ các sổ làm việc hiện có. Xlrd là một lựa chọn tốt cho các trường hợp bạn cần một giải pháp chỉ đọc với tối thiểu các phụ thuộc.
3. Sử dụng thư viện: Cài đặt và các hoạt động phổ biến
Openpyxl
Cài đặt:
pip install openpyxl
Trường hợp sử dụng:
-
Đọc tệp Excel:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') sheet = wb.active -
Thực thi sổ làm việc:
# Thực hiện các hoạt động trên sổ làm việc
wb.save('modified_example.xlsx') -
Đọc giá trị ô:
value = sheet['A1'].value
-
Ghi dữ liệu vào tệp Excel:
sheet['B1'] = 'Dữ liệu mới'
Pandas
Cài đặt:
pip install pandas
Trường hợp sử dụng:
-
Đọc tệp Excel:
import pandas as pd
df = pd.read_excel('example.xlsx') -
Đọc giá trị ô:
value = df.at[0, 'ColumnA']
-
Ghi dữ liệu vào tệp Excel:
df.to_excel('new_data.xlsx', index=False)
Xlsxwriter
Cài đặt:
pip install xlsxwriter
Trường hợp sử dụng:
-
Đọc tệp Excel: (Xlsxwriter chủ yếu dùng để ghi)
-
Thực thi sổ làm việc:
import xlsxwriter
workbook = xlsxwriter.Workbook('new_workbook.xlsx')
worksheet = workbook.add_worksheet() -
Đọc giá trị ô: (Xlsxwriter chủ yếu dùng để ghi)
-
Ghi dữ liệu vào tệp Excel:
worksheet.write('A1', 'Hello')
Xlrd
Cài đặt:
pip install xlrd
Trường hợp sử dụng:
-
Đọc tệp Excel:
import xlrd
workbook = xlrd.open_workbook('example.xls')
sheet = workbook.sheet_by_index(0) -
Thực thi sổ làm việc: (Xlrd chỉ đọc)
-
Đọc giá trị ô:
value = sheet.cell_value(0, 0)
-
Ghi dữ liệu vào tệp Excel: (Xlrd chỉ đọc)
4. Cách xử lý tệp Excel lớn
Pandas
Để xử lý các tệp Excel lớn một cách hiệu quả trong Python, bạn có thể sử dụng thư viện Pandas cùng với tham số `chunksize`. Điều này cho phép bạn đọc và xử lý tệp Excel thành các phần nhỏ hơn, ngăn chặn việc tải toàn bộ tệp vào bộ nhớ cùng một lúc. Đây là một ví dụ đơn giản:
import pandas as pd
# Chỉ định kích thước phần dựa trên bộ nhớ của hệ thống
chunk_size = 10000
# Tạo đối tượng Pandas ExcelFile
excel_file = pd.ExcelFile('big_data.xlsx')
# Lặp qua các phần của tệp Excel
for chunk in pd.read_excel(excel_file, chunksize=chunk_size):
# Xử lý từng phần nếu cần
process_chunk(chunk)
Điều chỉnh chunk_size
dựa trên các ràng buộc bộ nhớ của hệ thống. Phương pháp này cho phép bạn xử lý các tệp Excel lớn mà không làm quá tải tài nguyên bộ nhớ của mình.
Openpyxl
Để xử lý các tệp Excel lớn một cách hiệu quả bằng thư viện Openpyxl trong Python, bạn có thể tận dụng chế độ chỉ đọc được tối ưu hóa mà thư viện cung cấp. Chế độ này cho phép bạn truy cập dữ liệu mà không cần tải toàn bộ sổ làm việc vào bộ nhớ. Đây là một ví dụ đơn giản:
from openpyxl import load_workbook
# Mở tệp Excel ở chế độ chỉ đọc
workbook = load_workbook('big_data.xlsx', read_only=True)
# Truy cập một sheet cụ thể
sheet = workbook['Sheet1']
# Lặp qua các hàng trong sheet
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, values_only=True):
# Xử lý từng hàng nếu cần
process_row(row)
Sử dụng tham số read_only=True
khi tải sổ làm việc đảm bảo rằng chỉ có dữ liệu cần thiết được tải vào bộ nhớ, làm cho nó hiệu quả hơn về bộ nhớ để xử lý các tệp Excel lớn. Điều chỉnh tên sheet và logic xử lý dựa trên các yêu cầu cụ thể của bạn.
5. Kết luận
Việc chọn thư viện phù hợp để phân tích cú pháp các tệp Excel phụ thuộc vào trường hợp sử dụng cụ thể của bạn. Openpyxl và Pandas là những lựa chọn mạnh mẽ cho nhiều tác vụ khác nhau, trong khi Xlsxwriter phù hợp để tạo các tệp Excel mới. Nếu bạn cần một giải pháp chỉ đọc nhẹ, Xlrd có thể là lựa chọn phù hợp. Hãy xem xét các yêu cầu và sở thích của dự án để đưa ra quyết định sáng suốt và sắp xếp hợp lý các tác vụ phân tích cú pháp tệp Excel của bạn trong Python.