Làm cách nào để lấy tên trang tính trong openpyxl?

Hướng dẫn đầy đủ về thư viện Python Openpyxl bao gồm cài đặt, cách tạo bảng tính mới, đọc/ghi/xóa dữ liệu khỏi bảng tính

Excel là ứng dụng bảng tính phổ biến nhất được sử dụng để sắp xếp thông tin tốt hơn, thực hiện tính toán, tạo biểu đồ đầu ra, v.v. Trong thế giới thử nghiệm, việc xác minh ứng dụng bằng nhiều bộ dữ liệu khác nhau là rất quan trọng để có được sản phẩm chất lượng cao và phạm vi thử nghiệm tốt

Openpyxl là một trong những thư viện như vậy cho phép chúng tôi sử dụng Excel để thực hiện kiểm tra theo hướng dữ liệu và thậm chí để chuẩn bị báo cáo kết quả kiểm tra, v.v.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu Openpyxl là gì, cách cài đặt nó, tạo sổ làm việc mới, đọc dữ liệu từ bảng tính và ghi dữ liệu vào đó. Chúng tôi cũng sẽ tìm hiểu cách tải lên và tải xuống tương tự từ một trang web

Bạn sẽ học được gì

Làm cách nào để lấy tên trang tính trong openpyxl?

Openpyxl là gì

Openpyxl là một thư viện Python được sử dụng để đọc và ghi các tệp Excel (tệp xlsx/xlsm/xltx/xltm). Mô-đun này cho phép các chương trình Python đọc và sửa đổi bảng tính

Tệp XLSX là định dạng tệp mặc định cho Microsoft Excel. Nó dựa trên tiêu chuẩn Office Open XML

Tệp XLSM là tệp bảng tính hỗ trợ Macro

Tệp XLTX là tệp Mẫu Excel duy trì các cài đặt do người dùng xác định

Tệp XLTM là tệp mẫu hỗ trợ Macro được tạo bằng Microsoft Excel

Cách cài đặt Openpyxl

Khi bạn cài đặt Python, các thư viện Openpyxl không được cài đặt theo mặc định. Chúng tôi phải thực thi một lệnh để đưa các thư viện vào Python của chúng tôi. Đối với điều này, bạn cần mở dấu nhắc lệnh và thay đổi thư mục thành thư mục chứa Python của bạn và thực hiện lệnh bên dưới

pip install openpyxl

Làm cách nào để lấy tên trang tính trong openpyxl?

Khi bạn thực hiện lệnh, các thư viện sẽ được tải xuống và cài đặt. Điều này có thể được xác minh bằng cách sử dụng lệnh danh sách pip như trong hình bên dưới

Làm cách nào để lấy tên trang tính trong openpyxl?

Cấu hình của PyCharm IDE

Có 2 cách để cấu hình các thư viện Openpyxl cho một dự án trong PyCharm

#1) Sử dụng tùy chọn gói có sẵn trong PyCharm

Nhấp vào Tệp-> Dự án mới. Nhấp vào Tạo

Dự án của bạn sẽ được tạo thành công. Để xác minh xem các thư viện có được định cấu hình hay không, hãy chuyển đến Tệp -> Cài đặt. Trong trang cài đặt, vào Project -> Project Interpreter

Làm cách nào để lấy tên trang tính trong openpyxl?

Trong Gói, sau đó bạn sẽ thấy gói Openpyxl. Nếu thiếu, hãy nhấn vào nút “+” ở góc bên phải. Trong Các gói có sẵn, tìm kiếm Openpyxl và nhấn Gói cài đặt, như trong hình bên dưới. Sau khi cài đặt hoàn tất, bạn sẽ nhận được "gói 'openpyxl' đã cài đặt thành công"

Làm cách nào để lấy tên trang tính trong openpyxl?

Xác minh xem gói đã được cài đặt thành công chưa

Làm cách nào để lấy tên trang tính trong openpyxl?

#2) Sử dụng tùy chọn Inherit from global site-packages

Phương pháp này khá đơn giản. Chuyển đến Tệp-> Dự án mới. Trong khi tạo một dự án mới, hãy chọn hộp kiểm “Kế thừa gói trang web toàn cầu”. Sau khi dự án được tạo, điều hướng đến Tệp -> Cài đặt-> Dự án – > Trình thông dịch dự án, bạn sẽ thấy gói Openpyxl đã được cài đặt rồi

Làm cách nào để lấy tên trang tính trong openpyxl?

Tạo một sổ làm việc Excel mới

Chúng tôi sẽ bắt đầu bằng cách tạo một sổ làm việc mới. Một tệp Excel có tên là Workbook chứa tối thiểu một Sheet. Để tạo sổ làm việc, trước tiên chúng ta phải nhập sổ làm việc từ thư viện Openpyxl bằng lệnh bên dưới

from openpyxl import Workbook

Hãy tạo một đối tượng sổ làm việc. Chúng ta có thể sử dụng đối tượng này để xử lý tất cả các hành động cần thực hiện như đọc, viết, v.v.

wb = Workbook()

Đặt đường dẫn tệp nơi bạn muốn tạo sổ làm việc, như minh họa bên dưới

filepath = :”F:/tutorial/sample.xlsx”

Để lưu sổ làm việc, hãy sử dụng

wb.save(filepath)

Thao tác này sẽ tạo một tệp Excel trống mới trong đường dẫn đã chỉ định

Làm cách nào để lấy tên trang tính trong openpyxl?

Nếu bạn muốn tạo một tệp Excel mới ở cùng vị trí với tập lệnh Python, bạn có thể bỏ qua đường dẫn tệp và đề cập trực tiếp đến tên tệp trong wb. lưu lệnh như hình dưới đây

from openpyxl import Workbook 
wb = Workbook() 
wb.save("demo.xlsx")

Làm cách nào để lấy tên trang tính trong openpyxl?

Ghi dữ liệu vào tệp Excel

Bây giờ chúng ta đã biết cách tạo một tệp mới, hãy tiếp tục và điền dữ liệu vào tệp. Để đạt được điều này, chúng ta phải tải sổ làm việc mà chúng ta đã tạo ở trên. Điều này có thể được thực hiện bằng cách sử dụng lệnh dưới đây

wb = load_workbook(“demo.xlsx”)

Chúng ta phải chỉ định Sheet nào chúng ta sẽ nhập dữ liệu. Vì chúng tôi chỉ có một trang tính, chúng tôi chỉ có thể sử dụng từ khóa “hoạt động” và điều này sẽ sử dụng trang tính đang hoạt động hiện tại để nhập dữ liệu

sheet = wb.active

Trong trường hợp bạn có nhiều trang tính, bạn phải đề cập đến tên của trang tính, như bên dưới. Trong đó SheetName là tên của trang tính trong sổ làm việc

________số 8_______

Có 2 cách để nhập dữ liệu vào file Excel. Đây là như sau

  • Trực tiếp sử dụng kết hợp columnrow. Ví dụ [A1], trong đó A là cột và 1 là hàng
  • Sử dụng số hàng và số cột. Ví dụ hàng=4, cột=2
sheet['A1'] = 'Software Testing Help' 
sheet.cell(row=4, column=2).value = 'Openpyxl Tutorial'

Đảm bảo lưu tệp sau khi nhập các giá trị

from openpyxl import Workbook
0

Hoàn thành mã

from openpyxl import Workbook
1

Đoạn mã trên sẽ viết “Software Testing Help”, 10 và “Openpyxl Tutorial”, 13. 4 ở hàng thứ 1 và thứ 2 tương ứng như hình bên dưới

Làm cách nào để lấy tên trang tính trong openpyxl?

Đổi Tên Sheet Trong File Excel

Trường hợp bạn đang theo dõi ngày báo cáo và muốn đổi tên sheet thành ngày hiện tại. Nó có thể được thực hiện thông qua lệnh “title”

Đối với kịch bản này, chúng ta cần lấy ngày hiện tại. Vì vậy, trước tiên, chúng ta cần nhập gói datetime

from openpyxl import Workbook
2

now() sẽ cung cấp cho chúng tôi ngày và giờ hiện tại. Phương thức strftime() trả về một chuỗi biểu thị ngày và giờ

from openpyxl import Workbook
3

Bạn có thể thay đổi tên của trang tính bằng cách sử dụng trang tính. phương pháp tiêu đề. Đừng quên lưu tệp

from openpyxl import Workbook
4

Hoàn thành mã

from openpyxl import Workbook
5

Vì chúng tôi đã sử dụng trang hoạt động, tên của trang hoạt động hiện tại đã được thay đổi

Làm cách nào để lấy tên trang tính trong openpyxl?

Thêm trang tính vào tệp Excel

Xem xét ví dụ trên để theo dõi báo cáo của mỗi ngày, chúng ta cần tạo một trang tính mới cho mỗi ngày. Để thêm trang tính mới vào Excel, hãy sử dụng lệnh create_sheet

cú pháp

from openpyxl import Workbook
6

Tạo một trang tính (tại một chỉ mục tùy chọn)

Thông số

  • tiêu đề (str). tiêu đề tùy chọn của trang tính
  • chỉ số (int). vị trí tùy chọn mà trang tính sẽ được chèn vào

Ghi chú. Nếu Tham số không được nhập, thì nó sẽ tạo trang tính sau trang tính cuối cùng và đặt tên là “trang tính”

from openpyxl import Workbook
7

Hoàn thành mã

from openpyxl import Workbook
8

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

Nối nhiều giá trị vào trang tính

Chúng ta có thể nối thêm một nhóm giá trị ở cuối trang tính hiện tại. Điều này có thể đạt được bằng lệnh “append”

cú pháp

from openpyxl import Workbook
9

Trường hợp iterable là một danh sách các giá trị hoặc một giá trị

  • Nếu đó là một danh sách, tất cả các giá trị được thêm vào theo thứ tự, bắt đầu từ cột đầu tiên
  • Nếu đó là một giá trị, thì các giá trị đó được gán cho các cột được biểu thị bằng các phím (số hoặc chữ cái)

Tham khảo mã dưới đây

wb = Workbook()
0

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

Ghi chú. Bạn có thể In tên trang tính bằng cách sử dụng print(“active sheet title. ” + tờ. chức vụ)

Xóa một Sheet khỏi Sổ làm việc Excel

Trong Openpyxl, nếu bạn xóa một sheet, hãy cẩn thận một chút vì nó không thể khôi phục được. Hãy tạo một trang tính Excel có 3 Trang tính và gọi nó là “Sheet1” “Sheet2” “Sheet3” và lưu nó với tên DeleteSheet. xlsx

Làm cách nào để lấy tên trang tính trong openpyxl?

Tốt hơn hết là bạn nên biết các trang tính đã có sẵn trước khi xóa bất kỳ trang tính nào. Bạn có thể lấy nó thông qua lệnh sheetnames

Sau đó, bạn có thể sử dụng wb. xóa (tên trang tính) hoặc xóa wb [tên trang tính]

Ở đâu, wb là sổ làm việc bạn đã tải

Tham khảo mã dưới đây

wb = Workbook()
1

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

Làm cách nào để lấy tên trang tính trong openpyxl?

Đọc dữ liệu từ tệp Excel

Tương tự như ghi dữ liệu vào file, chúng ta có thể đọc dữ liệu từ file Excel bằng 2 cách

Hoặc, trực tiếp sử dụng kết hợp cột. Ví dụ [A1] hoặc, sử dụng số hàng và số cột. Ví dụ hàng=4, cột=2

tờ giấy. tế bào(). lệnh value sẽ giúp chúng ta lấy giá trị từ ô đã chỉ định

Tìm mã hoàn chỉnh bên dưới

wb = Workbook()
2

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

Đọc tất cả các giá trị trong tệp

Thông thường, trong kiểm thử phần mềm, chúng ta cần xác minh chức năng bằng nhiều bộ dữ liệu khác nhau. Giả sử rằng tất cả dữ liệu được đặt trong sổ làm việc và chúng tôi cần kiểm tra chức năng bằng cách sử dụng tất cả dữ liệu. Do đó, chúng ta cần duyệt qua từng hàng và cột để lấy các giá trị. Đối với một tập hợp dữ liệu lớn, phương pháp trên là không khả thi. Để đạt được điều này, chúng tôi phải lặp lại toàn bộ trang tính để tìm nạp các giá trị

Trước tiên chúng ta cần lấy số hàng và số cột trong trang tính

  • max_row-Điều này cung cấp chỉ mục hàng tối đa chứa dữ liệu (dựa trên 1)
  • max_column – Chỉ mục cột tối đa chứa dữ liệu (dựa trên 1)
wb = Workbook()
3

Ghi chú. max_row và max_column là lập chỉ mục dựa trên 1. Để đi đến hàng cuối cùng, chúng ta cần thêm một vào giá trị đếm

Dưới đây là Mã hoàn chỉnh để đọc các giá trị

wb = Workbook()
4

Ghi chú. Chúng tôi đã sử dụng end=’ ‘ để có khoảng cách giữa mỗi cột và dòng mới (\n) để in các giá trị trong một hàng mới

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

Nhận thư cột

Giả sử bạn có một tập dữ liệu lớn được lưu trữ trong một sổ làm việc và bạn muốn biết một giá trị cụ thể có sẵn trong chỉ mục hàng và cột nào. Bạn có thể tìm thấy điều đó bằng cách sử dụng get_column_letter. Điều này chuyển đổi một chỉ mục cột thành một ký tự cột. Ví dụ 3 đến C

Tham khảo đoạn mã dưới đây

wb = Workbook()
5

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

Thử nghiệm theo hướng dữ liệu

Bây giờ chúng ta đã biết Openpyxl giúp chúng ta đọc và ghi dữ liệu từ Excel, chúng ta sẽ sử dụng các khái niệm này để xây dựng một trường hợp thử nghiệm để kiểm tra ứng dụng với nhiều giá trị khác nhau được lấy từ bảng tính. Do đó đạt được thử nghiệm theo hướng dữ liệu

>> Đề nghị đọc.

Hãy xem xét một tình huống mà chúng tôi sẽ đăng nhập vào Facebook. com, đọc thông tin xác thực đăng nhập từ sổ làm việc, xác minh tiêu đề của trang sau khi đăng nhập và ghi kết quả trở lại cùng một sổ làm việc

Bước Hành độngKết quả mong đợi1Mở trình duyệt ChromeTrình duyệt Chrome sẽ khởi chạy thành công2Điều hướng đến www. Facebook. comTrang web Facebook phải được mở3Phóng to cửa sổ trình duyệtCửa sổ trình duyệt phải được phóng to4Đọc dữ liệu từ Excel và nhập EmailEmail đã nhập sẽ được hiển thị5Đọc dữ liệu từ Excel và nhập mật khẩuMật khẩu đã nhập sẽ được hiển thị6Nhấp vào Đăng nhậpTrang phù hợp sẽ được hiển thị7Xác minh tiêu đề của trangFacebook phải là tiêu đề của

Lặp lại kịch bản trên cho các thông tin đăng nhập khác nhau

Tạo tệp Excel với dữ liệu đầu vào

Hãy tạo một tệp có thông tin đăng nhập, tiêu đề dự kiến, tiêu đề thực và trường kết quả rồi lưu dưới dạng Dữ liệu đầu vào. xlsx

EmailMật khẩuTiêu đề mong đợiTiêu đề thựcKết quả chính xácusrname@example. đúng mật khẩu Facebook chính xác tên người dùng @ ví dụ. comincorrectpasswordFacebookincorrectusrname@example. sửa mật khẩu Facebook chính xác tên người dùng @ ví dụ. sửa lại mật khẩu Facebook

Ghi chú. Đây là một tập tin giả được sử dụng để hiển thị một ví dụ. Điền email và mật khẩu chính xác khi thực hành kịch bản

Viết Test Script

Nhìn vào tệp đầu vào ở trên, chúng tôi có thể nói rằng chúng tôi phải lặp lại tập lệnh 4 lần cho 4 thông tin đăng nhập khác nhau. Vì vậy để tránh rườm rà chúng ta hãy tạo một class riêng chứa các hàm đọc ghi file Excel. Chúng tôi đã đặt tên nó là ExcelUtils

Dưới đây là mã ExcelUtils

wb = Workbook()
6

Bây giờ nhập ExcelUtils. py vào lớp chính của bạn và chúng tôi sẽ có thể sử dụng lại các chức năng đọc và ghi

Chúng ta sẽ đọc email và mật khẩu từ file Excel và đăng nhập Facebook. Nếu đăng nhập thành công thì script sẽ cập nhật kết quả vào file là Passed. Nếu đăng nhập không thành công thì tập lệnh sẽ cập nhật tiêu đề thực của trang và đánh dấu kết quả là Không thành công

Ghi chú. Cài đặt thư viện Selenium trong IDE của bạn, Bạn không thể thực thi mã nếu không có điều đó. pip install Lệnh Selenium được sử dụng để cài đặt các thư viện Selenium

Dưới đây là mã hoàn chỉnh

wb = Workbook()
7

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

EmailMật khẩuTiêu đề mong đợiTiêu đề thựcKết quả chính xácusrname@example. sai mật khẩu FacebookĐăng nhập Facebook. FacebookFailedcorrectusrname@example. sai mật khẩu FacebookĐăng nhập Facebook. FacebookFailedintrueusrname@example. comcorrectpasswordFacebookLogin helpFailedcorrectusrname@example. sửa lại mật khẩu FacebookĐã thông qua

Cập nhật dử liệu

Khi bạn bắt đầu tự động hóa các dự án thời gian thực, sớm muộn gì bạn cũng sẽ thực hiện tải tệp lên. Ví dụ: tải tệp kết quả lên bộ nhớ dùng chung hoặc thử nghiệm ứng dụng bằng cách tải tệp lên, v.v. Vấn đề với tệp tải lên là khi bạn nhấp vào nút tải lên, hộp thoại chọn tệp mở ra không thuộc sở hữu của trình duyệt, vì vậy bạn không thể kiểm soát nó bằng Selenium

Để đạt được điều này, chúng ta cần chuyển trực tiếp đường dẫn tệp đến phần tử đầu vào

wb = Workbook()
8

Chúng ta nên chọn phần tử đầu vào và sau đó chuyển đường dẫn của tệp tới phần tử đó bằng phương thức send_keys

Làm cách nào để lấy tên trang tính trong openpyxl?

[nguồn ảnh]

Trong ví dụ này, chúng tôi đang lấy phần tử web của trường đầu vào id(“content”) và chuyển trực tiếp đường dẫn tệp bằng cách sử dụng các phím gửi

Dưới đây là mã để tải lên tệp Excel

wb = Workbook()
9

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

Tải tập tin

Tải xuống một tệp khá đơn giản trong Selenium. Tìm phần tử web của tệp và nút tải xuống. Nhưng thông thường, các tệp được tải xuống trong thư mục tải xuống

Nếu bạn muốn tải xuống các tệp trong một thư mục cụ thể, thì bạn sẽ phải sử dụng tùy chọn chrome và chỉ định đường dẫn của thư mục nơi tệp phải được tải xuống

Tham khảo mã dưới đây

filepath = :”F:/tutorial/sample.xlsx”
0

Mã này sẽ tải xuống tệp theo đường dẫn do bạn chỉ định

Kết quả

Làm cách nào để lấy tên trang tính trong openpyxl?

Các câu hỏi thường gặp

Q #1) Làm cách nào để cài đặt Openpyxl?

Câu trả lời. Chúng tôi phải thực thi một lệnh để đưa các thư viện vào Python của chúng tôi. Mở dấu nhắc lệnh và thay đổi thư mục thành thư mục làm việc của Python và thực hiện lệnh bên dưới

filepath = :”F:/tutorial/sample.xlsx”
1

Q #2) Tôi có thể sử dụng Python trong Excel không?

Câu trả lời. Mô-đun Openpyxl cho phép Python đọc dữ liệu từ tệp Excel và cũng cho phép chúng tôi ghi/sửa đổi/nối dữ liệu vào cùng một tệp

Q #3) Làm cách nào để tôi tải sổ làm việc trong Openpyxl?

Câu trả lời

#Nhập load_workbook
từ openpyxl nhập load_workbook

# Tải sổ làm việc
wb = load_workbook(đường dẫn của sổ làm việc)

Ví dụ- wb =load_workbook(“C. \\Người dùng\\bản trình diễn. xlsx”)

Q #4) Openpyxl có hoạt động với XLS không?

Câu trả lời. Không, nó không hỗ trợ XLS. Nếu bạn cố gắng sử dụng. định dạng tệp XLS, Python sẽ đưa ra một ngoại lệ

nâng cao InvalidFileException(msg)

openpyxl. đồ dùng. ngoại lệ. Ngoại lệ tệp không hợp lệ. openpyxl không hỗ trợ cái cũ. xls, vui lòng sử dụng xlrd để đọc tệp này hoặc chuyển đổi nó sang định dạng mới hơn. định dạng tệp xlsx

Học thêm =>> Xử lý ngoại lệ trong Python

Q #5) Làm cách nào để tìm phiên bản Openpyxl mà tôi có?

Câu trả lời. Mở dấu nhắc lệnh. Thay đổi thư mục thành thư mục cài đặt Python của bạn, sau đó thực hiện lệnh pip list. Điều này sẽ cung cấp cho tất cả các gói được cài đặt cùng với phiên bản của chúng

Q #6) Openpyxl có hoạt động với Excel 2016 không?

Câu trả lời. Có, nó hỗ trợ các định dạng tệp xlsx, xlsm, xltx và xltm

Q #7) Làm cách nào để tạo trang tính mới trong Openpyxl?

Câu trả lời. Để thêm trang tính mới vào Excel, hãy sử dụng

from openpyxl import Workbook
6

Tạo một trang tính (tại một chỉ mục tùy chọn)

Thông số

  • tiêu đề (str)–tiêu đề tùy chọn của trang tính
  • chỉ mục (int)–vị trí tùy chọn mà trang tính sẽ được chèn vào

Ghi chú. nó không nhập Nếu Tham số thì nó tạo trang tính sau trang tính cuối cùng và đặt tên là “trang tính”

Ví dụ – wb. create_sheet(index = 3 , title = “Day4”)

Q #8) Làm cách nào để đóng sổ làm việc trong Openpyxl?

Câu trả lời. Workbook_Object. Thoát()

Thao tác này sẽ Đóng tệp sổ làm việc nếu đang mở. Nó chỉ ảnh hưởng đến chế độ chỉ đọc và chỉ ghi. Ví dụ – Wb. Thoát()

Sau khi bạn đóng sổ làm việc. Bạn sẽ không được phép sử dụng lại cho đến khi bạn tải lại sổ làm việc

Q #9) Cách giải quyết – không có mô-đun nào có tên lỗi 'openpyxl'?

Câu trả lời. ModuleNotFoundLỗi. Lỗi không có mô-đun có tên openpyxl xảy ra khi mô-đun đó chưa được cài đặt

Nếu bạn có cả Python2. x và Python3. x được cài đặt trong cùng một máy, sau đó sử dụng pip để cài đặt trong Python2. x và pip3 để cài đặt trong Python3. x

Thí dụ -

pip install openpyxl – Cài đặt mô-đun Openpyxl trong Python2. x

pip3 cài đặt openpyxl – Cài đặt mô-đun Openpyxl trong Python3. x

Q #10) Làm cách nào để mở tệp Excel đã tồn tại bằng Openpyxl?

Câu trả lời. Nếu bạn đã có file Excel thì dùng hàm load_workbook để mở

Nếu tệp nằm trong thư mục làm việc hiện tại của python, chỉ cần viết tên tệp làm đối số cho hàm này

Ví dụ - từ openpyxl nhập load_workbook
wb= load_workbook(“myexcelfile. xlsx”)

Nếu tệp của bạn không có trong thư mục làm việc python của bạn, thì hãy đề cập đến đường dẫn của tệp dưới dạng tham số để tải sổ làm việc

Ví dụ - từ openpyxl nhập load_workbook
wb =load_workbook(“C. \\Users\\myexcelfile. xlsx”)

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu về thư viện Openpyxl cho phép chúng ta tương tác linh hoạt với Excel và do đó giúp việc kiểm tra theo hướng dữ liệu trở nên dễ dàng