Hầu hết thế giới ngày nay dựa vào Excel cho rất nhiều quy trình. Chúng ta đều biết Excel được sử dụng để sắp xếp dữ liệu, thực hiện tính toán, phân tích tài chính, trực quan hóa, v.v. Tuy nhiên, đôi khi cần tự động hóa một số tác vụ lặp đi lặp lại khó thực hiện thủ công. Và đây là Python để giải cứu chúng ta khỏi những nhiệm vụ đơn điệu và giúp tự động hóa. Một thư viện hữu ích của Python là Openpyxl mà chúng ta sẽ tìm hiểu trong bài viết này
Openpyxl
Openpyxl là một thư viện Python được sử dụng để đọc từ tệp Excel hoặc ghi vào tệp Excel. Các nhà khoa học dữ liệu sử dụng Openpyxl để phân tích dữ liệu, sao chép dữ liệu, khai thác dữ liệu, vẽ biểu đồ, biểu định kiểu, thêm công thức, v.v.
Sách bài tập. Một bảng tính được biểu diễn dưới dạng sổ làm việc trong openpyxl. Một sổ làm việc bao gồm một hoặc nhiều trang tính
Tờ giấy. Trang tính là một trang đơn bao gồm các ô để tổ chức dữ liệu
Tế bào. Giao điểm của một hàng và một cột được gọi là một ô. Thường được đại diện bởi A1, B5, v.v.
Chèo thuyền. Một hàng là một đường nằm ngang được biểu thị bằng một số [1,2, v.v. ]
Cột. Cột là một đường thẳng đứng được biểu thị bằng chữ in hoa [A, B, v.v. ]
Openpyxl có thể được cài đặt bằng lệnh pip và nên cài đặt nó trong môi trường ảo
61 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Tạo sổ làm việc mới
Chúng tôi bắt đầu bằng cách tạo một bảng tính mới, được gọi là sổ làm việc trong Openpyxl. Chúng tôi nhập mô-đun sổ làm việc từ Openpyxl và sử dụng
7 để tạo sổ làm việc mới1 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
from openpyxl import Workbook #creates a new workbook wb = Workbook[] #Gets the first active worksheet ws = wb.active #creating new worksheets by using the create_sheet method ws1 = wb.create_sheet["sheet1", 0] #inserts at first position ws2 = wb.create_sheet["sheet2"] #inserts at last position ws3 = wb.create_sheet["sheet3", -1] #inserts at penultimate position #Renaming the sheet ws.title = "Example" #save the workbook wb.save[filename = "example.xlsx"]
Đọc dữ liệu từ sổ làm việc
Chúng tôi tải tệp bằng cách sử dụng
8 lấy tên tệp làm đối số. Các tập tin phải được lưu trong cùng một thư mục làm việc1 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
1 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Lấy trang tính từ sổ làm việc đã tải
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#getting sheet names wb.sheetnames result = ['sheet1', 'Sheet', 'sheet3', 'sheet2'] #getting a particular sheet sheet1 = wb["sheet2"] #getting sheet title sheet1.title result = 'sheet2' #Getting the active sheet sheetactive = wb.active result = 'sheet1'
Truy cập ô và giá trị ô
1 2 3 4 5 6 7 8 9 10 11
#get a cell from the sheet sheet1["A1"] < Cell 'Sheet1'.A1 > #get the cell value ws["A1"].value 'Segment' #accessing cell using row and column and assigning a value d = ws.cell[row = 4, column = 2, value = 10] d.value 10
Lặp qua các hàng và cột
1 2 3 4 5 6 7 8 9 10 11 12 13
#looping through each row and column for x in range[1, 5]: for y in range[1, 5]: print[x, y, ws.cell[row = x, column = y] .value] #getting the highest row number ws.max_row 701 #getting the highest column number ws.max_column 19
Có hai chức năng để lặp qua các hàng và cột
________số 8Thí dụ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#iterating rows for row in ws.iter_rows[min_row = 2, max_col = 3, max_row = 3]: for cell in row: print[cell] < Cell 'Sheet1'.A2 > < Cell 'Sheet1'.B2 > < Cell 'Sheet1'.C2 > < Cell 'Sheet1'.A3 > < Cell 'Sheet1'.B3 > < Cell 'Sheet1'.C3 > #iterating columns for col in ws.iter_cols[min_row = 2, max_col = 3, max_row = 3]: for cell in col: print[cell] < Cell 'Sheet1'.A2 > < Cell 'Sheet1'.A3 > < Cell 'Sheet1'.B2 > < Cell 'Sheet1'.B3 > < Cell 'Sheet1'.C2 > < Cell 'Sheet1'.C3 >
Để lấy tất cả các hàng của trang tính ta sử dụng phương thức worksheet. các hàng và để lấy tất cả các cột của trang tính, chúng tôi sử dụng phương thức trang tính. cột. Tương tự, để chỉ lặp qua các giá trị, chúng ta sử dụng bảng tính phương thức. giá trị
Thí dụ
01 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Ghi dữ liệu vào tệp Excel
Việc ghi vào sổ làm việc có thể được thực hiện theo nhiều cách, chẳng hạn như thêm công thức, thêm biểu đồ, hình ảnh, cập nhật giá trị ô, chèn hàng và cột, v.v.. Chúng ta sẽ thảo luận từng cách này với một ví dụ
Tạo và lưu sổ làm việc mới
11 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Thêm và xóa trang tính
21 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Thêm giá trị ô
01 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Thêm công thức
Chúng tôi thường yêu cầu đưa công thức vào biểu dữ liệu Excel của mình. Chúng ta có thể dễ dàng thêm công thức bằng mô-đun Openpyxl giống như bạn thêm giá trị vào ô.
Ví dụ.
11 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Chương trình trên sẽ thêm công thức [=SUM[A2. A8]] trong ô A9. Kết quả sẽ như bên dưới
Hợp nhất/hủy hợp nhất các ô
Hai hoặc nhiều ô có thể được hợp nhất thành một vùng hình chữ nhật bằng phương thức merge_cells[] và tương tự, chúng có thể được hủy hợp nhất bằng phương thức unmerge_cells[]
Ví dụ.
Hợp nhất các ô
21 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Thêm đoạn mã trên vào ví dụ trước sẽ hợp nhất các ô như bên dưới
Hủy hợp nhất các ô
31 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Đoạn mã trên sẽ hủy hợp nhất các ô từ B2 đến C9
Chèn một hình ảnh
Để chèn hình ảnh, chúng tôi nhập chức năng hình ảnh từ mô-đun openpyxl. đang vẽ. hình ảnh. Sau đó, chúng tôi tải hình ảnh của mình và thêm nó vào ô như trong ví dụ bên dưới
Thí dụ
41 2
#loading a workbook wb = openpyxl.load_workbook["example.xlsx"]
Kết quả
Tạo biểu đồ
Biểu đồ rất cần thiết để hiển thị trực quan dữ liệu. Chúng tôi có thể tạo biểu đồ từ dữ liệu Excel bằng biểu đồ mô-đun Openpyxl. Các dạng biểu đồ khác nhau như biểu đồ đường, biểu đồ thanh, biểu đồ đường 3D, v.v. , có thể được tạo. Chúng ta cần tạo một tham chiếu chứa dữ liệu sẽ được sử dụng cho biểu đồ, không gì khác ngoài việc lựa chọn các ô [hàng và cột]. Tôi đang sử dụng dữ liệu mẫu để tạo biểu đồ thanh 3D trong ví dụ bên dưới