hands python openpyxl tutorial with examples
Πλήρης οδηγός για τη βιβλιοθήκη Python Το Openpyxl περιλαμβάνει εγκατάσταση, πώς να δημιουργήσετε ένα νέο φύλλο εργασίας, να διαβάσετε / γράψετε / διαγράψετε δεδομένα από το βιβλίο εργασίας:
Το Excel είναι η πιο δημοφιλής εφαρμογή υπολογιστικών φύλλων που χρησιμοποιείται για την καλύτερη οργάνωση των πληροφοριών, την εκτέλεση υπολογισμών, την παραγωγή γραφημάτων εξόδου και πολλά άλλα. Στον κόσμο των δοκιμών, η επαλήθευση της εφαρμογής με διάφορα σύνολα δεδομένων είναι ζωτικής σημασίας για την απόκτηση προϊόντος υψηλής ποιότητας και καλής κάλυψης δοκιμών.
Το Openpyxl είναι μια τέτοια βιβλιοθήκη που μας επιτρέπει να χρησιμοποιούμε το Excel για την εκτέλεση δοκιμών βάσει δεδομένων και ακόμη και για την προετοιμασία αναφορών αποτελεσμάτων δοκιμής κ.λπ.
Σε αυτό το σεμινάριο θα μάθουμε τι είναι το Openpyxl, την εγκατάστασή του, τη δημιουργία ενός νέου βιβλίου εργασίας, την ανάγνωση δεδομένων από το υπολογιστικό φύλλο και επίσης τη συγγραφή δεδομένων σε αυτό. Θα μάθουμε επίσης πώς να ανεβάζουμε και να κατεβάζουμε το ίδιο από μια ιστοσελίδα.
Τι θα μάθετε:
- Τι είναι το Openpyxl
- Πώς να εγκαταστήσετε το Openpyxl
- Διαμόρφωση του PyCharm IDE
- Δημιουργία νέου βιβλίου εργασίας του Excel
- Εγγραφή δεδομένων στο αρχείο Excel
- Μετονομάστε το φύλλο στο αρχείο Excel
- Προσθήκη φύλλων στο αρχείο Excel
- Προσθήκη πολλαπλών τιμών στο φύλλο
- Διαγράψτε ένα φύλλο από το βιβλίο εργασίας του Excel
- Ανάγνωση δεδομένων από το αρχείο Excel
- Ανάγνωση όλων των τιμών στο αρχείο
- Λήψη επιστολής στήλης
- Δοκιμή βάσει δεδομένων
- συμπέρασμα
Τι είναι το Openpyxl
Το Openpyxl είναι μια βιβλιοθήκη Python που χρησιμοποιείται για την ανάγνωση και εγγραφή αρχείων Excel (αρχεία xlsx / xlsm / xltx / xltm). Αυτή η ενότητα επιτρέπει στα προγράμματα Python να διαβάζουν και να τροποποιούν το υπολογιστικό φύλλο.
XLSX Το αρχείο είναι η προεπιλεγμένη μορφή αρχείου για το Microsoft Excel. Βασίζεται στο πρότυπο Office Open XML.
XLSM Το αρχείο είναι ένα αρχείο υπολογιστικών φύλλων με δυνατότητα μακροεντολής.
XLTX Το αρχείο είναι ένα αρχείο προτύπου Excel που διατηρεί τις ρυθμίσεις που καθορίζονται από τον χρήστη.
XLTM Το αρχείο είναι ένα αρχείο προτύπου με δυνατότητα μακροεντολής που δημιουργείται με το Microsoft Excel.
Πώς να εγκαταστήσετε το Openpyxl
Κατά την εγκατάσταση του Python, οι βιβλιοθήκες Openpyxl δεν εγκαθίστανται από προεπιλογή. Πρέπει να εκτελέσουμε μια εντολή για να βάλουμε τις βιβλιοθήκες στο Python μας. Για αυτό, πρέπει να ανοίξετε τη γραμμή εντολών και να αλλάξετε τον κατάλογο στο φάκελο όπου βρίσκεται το Python και να εκτελέσετε την παρακάτω εντολή.
pip install openpyxl
Μόλις εκτελέσετε την εντολή, οι βιβλιοθήκες θα ληφθούν και θα εγκατασταθούν. Αυτό μπορεί να επαληθευτεί χρησιμοποιώντας λίστα pip εντολή όπως φαίνεται στην παρακάτω εικόνα.
Διαμόρφωση του PyCharm IDE
Υπάρχουν 2 τρόποι διαμόρφωσης βιβλιοθηκών Openpyxl για ένα έργο στο PyCharm.
# 1) Χρησιμοποιώντας την επιλογή διαθέσιμων πακέτων στο PyCharm
Κάντε κλικ στο Αρχείο-> Νέο έργο. Κάντε κλικ στο Δημιουργία.
Το έργο σας θα δημιουργηθεί με επιτυχία. Για να επαληθεύσετε εάν οι βιβλιοθήκες έχουν ρυθμιστεί, μεταβείτε στο Αρχείο -> Ρυθμίσεις . Στη σελίδα ρυθμίσεων, μεταβείτε στο Έργο -> Διερμηνέας έργου .
Στην ενότητα Πακέτα, θα δείτε το πακέτο Openpyxl. Εάν αυτό λείπει, πατήστε το « + Κουμπί στη δεξιά γωνία. Στην ενότητα Διαθέσιμα πακέτα, αναζητήστε Openpyxl και Hit Install Package, όπως φαίνεται στην παρακάτω εικόνα. Μετά την ολοκλήρωση της εγκατάστασης, θα εγκαταστήσετε με επιτυχία το 'πακέτο' openpyxl '
Βεβαιωθείτε ότι το πακέτο έχει εγκατασταθεί με επιτυχία.
# 2) Χρήση της επιλογής Inherit από παγκόσμια πακέτα ιστότοπων
Αυτή η μέθοδος είναι αρκετά απλή. Παω σε Αρχείο-> Νέο έργο . Κατά τη δημιουργία ενός νέου έργου επιλέξτε ' Κληρονομήστε παγκόσμια πακέτα ιστότοπων Πλαίσιο ελέγχου. Μετά τη δημιουργία του έργου, μεταβείτε στο Αρχείο -> Ρυθμίσεις-> Έργο -> Διερμηνέας έργου , θα δείτε ότι το πακέτο Openpyxl είναι ήδη εγκατεστημένο.
Δημιουργία νέου βιβλίου εργασίας του Excel
Θα ξεκινήσουμε δημιουργώντας ένα νέο βιβλίο εργασίας. Ένα αρχείο Excel ονομάζεται Workbook που περιέχει τουλάχιστον ένα φύλλο. Για να δημιουργήσουμε ένα βιβλίο εργασίας, πρέπει πρώτα να εισαγάγουμε το βιβλίο εργασίας από τη βιβλιοθήκη Openpyxl χρησιμοποιώντας την παρακάτω εντολή:
from openpyxl import Workbook
Ας δημιουργήσουμε ένα αντικείμενο βιβλίου εργασίας. Μπορούμε να χρησιμοποιήσουμε αυτό το αντικείμενο για τον χειρισμό όλων των ενεργειών που πρέπει να εκτελεστούν όπως ανάγνωση, εγγραφή κ.λπ.
wb = Workbook()
Ορίστε το αρχείο πορείας όπου θέλετε να δημιουργήσετε το βιβλίο εργασίας, όπως φαίνεται παρακάτω:
filepath = :”F:/tutorial/sample.xlsx”
Για να αποθηκεύσετε τη χρήση του βιβλίου εργασίας
wb.save(filepath)
Αυτό θα δημιουργήσει ένα νέο κενό αρχείο Excel στην καθορισμένη διαδρομή.
Εάν θέλετε να δημιουργήσετε ένα νέο αρχείο Excel στην ίδια θέση με τα σενάρια Python, μπορείτε να παραλείψετε το αρχείο αρχείων και να αναφέρετε απευθείας το όνομα του αρχείου στο wb. αποθήκευση εντολή όπως φαίνεται παρακάτω:
from openpyxl import Workbook wb = Workbook() wb.save('demo.xlsx')
Εγγραφή δεδομένων στο αρχείο Excel
Τώρα που γνωρίζουμε πώς να δημιουργήσουμε ένα νέο αρχείο, ας προχωρήσουμε και συμπληρώστε τα δεδομένα στο αρχείο. Για να το επιτύχουμε αυτό, πρέπει να φορτώσουμε το βιβλίο εργασίας που έχουμε δημιουργήσει παραπάνω. Αυτό μπορεί να γίνει χρησιμοποιώντας την παρακάτω εντολή:
wb = load_workbook(“demo.xlsx”)
Πρέπει να καθορίσουμε σε ποιο φύλλο θα εισαγάγουμε τα δεδομένα. Εφόσον έχουμε μόνο ένα φύλλο, μπορούμε απλώς να χρησιμοποιήσουμε τη λέξη-κλειδί «ενεργό» και αυτό θα χρησιμοποιήσει το τρέχον ενεργό φύλλο για να εισαγάγει τα δεδομένα.
sheet = wb.active
Σε περίπτωση που έχετε πολλά φύλλα, πρέπει να αναφέρετε το όνομα του φύλλου εργασίας, όπως δίνεται παρακάτω. Όπου το SheetName είναι το όνομα του φύλλου στο βιβλίο εργασίας.
sheet = wb('SheetName')
Υπάρχουν 2 τρόποι εισαγωγής των δεδομένων στο αρχείο Excel. Αυτά είναι τα εξής:
- Χρησιμοποιήστε άμεσα το συνδυασμό στήλης. Παράδειγμα (A1), όπου το Α είναι η στήλη και το 1 είναι η σειρά.
- Χρησιμοποιήστε τους αριθμούς γραμμής και στήλης. Παράδειγμα σειρά = 4, στήλη = 2
sheet('A1') = 'Software Testing Help' sheet.cell(row=4, column=2).value = 'Openpyxl Tutorial'
Βεβαιωθείτε ότι έχετε αποθηκεύσει το αρχείο αφού εισαγάγετε τις τιμές.
wb.save('demo.xlsx')
Πλήρης κωδικός:
from openpyxl import load_workbook wb = load_workbook('demo.xlsx') # Sheet is the SheetName where the data has to be entered sheet = wb('Sheet') # Enter into 1st row and Ath column sheet('A1') = 'Software Testing Help' # Similarly you can enter in the below shown fashion sheet.cell(row=2, column=1).value = 'OpenPyxl Tutorial' sheet('B1') = 10 sheet.cell(row=2, column=2).value =13.4 wb.save('demo.xlsx')
Ο παραπάνω κώδικας θα γράφει 'Βοήθεια δοκιμών λογισμικού', 10 και 'Tutorial Openpyxl', 13,4 σε 1αγκαι 2αρσειρά αντίστοιχα όπως φαίνεται παρακάτω.
Μετονομάστε το φύλλο στο αρχείο Excel
Σε περίπτωση που παρακολουθείτε την ημερομηνία αναφοράς σωστά και θέλετε να αλλάξετε το όνομα του φύλλου στην τρέχουσα ημερομηνία. Μπορεί να γίνει μέσω της εντολής «τίτλος».
Για αυτό το σενάριο, πρέπει να λάβουμε την τρέχουσα ημερομηνία. Πρώτα λοιπόν, πρέπει να εισαγάγουμε πακέτο ώρας δεδομένων.
from datetime import datetime
τώρα() θα μας δώσει την τρέχουσα ημερομηνία και ώρα .strftime () Η μέθοδος επιστρέφει μια συμβολοσειρά που αντιπροσωπεύει την ημερομηνία και την ώρα.
now = datetime.now() date_time = now.strftime('%d.%m.%Y')
Μπορείτε να αλλάξετε το όνομα του φύλλου χρησιμοποιώντας sheet.title μέθοδος. Μην ξεχάσετε να αποθηκεύσετε το αρχείο.
sheet.title = date_time wb.save('demo.xlsx')
Πλήρης κωδικός:
from datetime import datetime from openpyxl import load_workbook #Load the workbook demo.xlsx wb = load_workbook('demo.xlsx') #Select the current active sheet sheet = wb.active now = datetime.now() date_time = now.strftime('%d.%m.%Y') sheet.title = date_time wb.save('demo.xlsx')
Εφόσον έχουμε χρησιμοποιήσει το ενεργό φύλλο, το όνομα του τρέχοντος ενεργού φύλλου έχει αλλάξει.
Προσθήκη φύλλων στο αρχείο Excel
Λαμβάνοντας υπόψη το παραπάνω παράδειγμα για την παρακολούθηση της αναφοράς κάθε μέρα, πρέπει να δημιουργήσουμε ένα νέο φύλλο για κάθε μέρα. Για να προσθέσετε νέα φύλλα στο Excel, χρησιμοποιήστε το create_sheet εντολή.
Σύνταξη:
create_sheet(title=None, index=None)
Δημιουργήστε ένα φύλλο εργασίας (σε προαιρετικό ευρετήριο).
Παράμετροι:
- τίτλος (str): προαιρετικός τίτλος του φύλλου.
- ευρετήριο (int): προαιρετική θέση στην οποία θα εισαχθεί το φύλλο.
Σημείωση: Εάν δεν έχουν εισαχθεί παράμετροι, τότε δημιουργεί το φύλλο μετά το τελευταίο φύλλο και το ονομάζει ως 'φύλλο'.
sheetname ='Day2 Result '+now.strftime('%d.%m.%Y') #Add new sheet using the index and title fields wb.create_sheet(index = 1 , title = sheetname)
Πλήρης κωδικός:
from datetime import datetime from openpyxl import load_workbook wb = load_workbook('demo.xlsx') sheet = wb.active now = datetime.now() date_time = now.strftime('%d.%m.%Y') sheet.title = date_time sheetname ='Day2 Result '+now.strftime('%d.%m.%Y') wb.create_sheet(index = 1 , title = sheetname) wb.save('demo.xlsx')
Αποτέλεσμα:
Προσθήκη πολλαπλών τιμών στο φύλλο
Μπορούμε να προσθέσουμε μια ομάδα τιμών στο κάτω μέρος του τρέχοντος φύλλου. Αυτό μπορεί να επιτευχθεί από 'προσαρτώ' εντολή.
Σύνταξη:
append(iterable)
Όπου είναι επαναληπτικό είναι μια λίστα τιμών ή μιας τιμής
καλύτερο δωρεάν λογισμικό για λήψη βίντεο στο YouTube
- Αν είναι μια λίστα, όλες οι τιμές προστίθενται στη σειρά, ξεκινώντας από την πρώτη στήλη.
- Αν είναι μία τιμή, τότε οι τιμές αντιστοιχίζονται στις στήλες που υποδεικνύονται από τα πλήκτρα (αριθμοί ή γράμματα).
Ανατρέξτε στον παρακάτω κώδικα:
from openpyxl import load_workbook wb = load_workbook('demo.xlsx') #Mention the sheet where the data can be entered, sheet = wb('Day2 Result 27.07.2020') # Assign multiple values to data data =(('Emp Id', 'Emp Name', 'Designation'), (1, 'XYZ', 'Manager'), (2, 'ABC', 'Consultant')) #Append all rows for i in data: sheet.append(i) wb.save('demo.xlsx')
Αποτέλεσμα:
Σημείωση: Μπορείτε να εκτυπώσετε τα ονόματα των φύλλων χρησιμοποιώντας εκτύπωση ('ενεργός τίτλος φύλλου:' + φύλλο. τίτλος)
Διαγράψτε ένα φύλλο από το βιβλίο εργασίας του Excel
Στο Openpyxl, εάν διαγράψετε ένα φύλλο, προσέξτε λίγο γιατί δεν είναι ανακτήσιμο. Ας δημιουργήσουμε ένα φύλλο Excel με 3 φύλλα και να το ονομάσουμε 'Sheet1' 'Sheet2' 'Sheet3' και να το αποθηκεύσουμε ως DeleteSheet.xlsx .
Είναι πάντα καλύτερο να γνωρίζετε τα φύλλα, τα οποία υπάρχουν ήδη πριν από τη διαγραφή οποιουδήποτε. Μπορείτε να το ξεπεράσετε ονόματα φύλλων εντολή.
Τότε μπορείτε να χρησιμοποιήσετε wb.remove (όνομα φύλλου) ή del wb (όνομα φύλλου)
Πού, wb είναι το βιβλίο εργασίας που έχετε φορτώσει.
Ανατρέξτε στον παρακάτω κώδικα:
import openpyxl wb = openpyxl.load_workbook('DeleteSheet.xlsx') print('The names of work sheets before deleting') print(wb.sheetnames) sheetDelete = wb('Sheet2') wb.remove(sheetDelete) #Sheet2 will be deleted #del wb(sheetDelete) #Alternatively you can use del cmd print('The names of work sheets after deleting') print(wb.sheetnames) wb.save('DeleteSheet.xlsx')
Αποτέλεσμα:
Ανάγνωση δεδομένων από το αρχείο Excel
Παρόμοια με τη σύνταξη δεδομένων στο αρχείο, μπορούμε να διαβάσουμε τα δεδομένα από ένα αρχείο Excel χρησιμοποιώντας 2 τρόπους.
Είτε, χρησιμοποιήστε απευθείας το συνδυασμό στήλης . Παράδειγμα (A1) ή, χρησιμοποιήστε τους αριθμούς γραμμής και στήλης . Παράδειγμα σειρά = 4, στήλη = 2.
sheet.cell (). τιμή Η εντολή θα μας βοηθήσει να ανακτήσουμε την τιμή από το καθορισμένο κελί.
Βρείτε τον πλήρη κωδικό παρακάτω:
from openpyxl import load_workbook wb = load_workbook('demo.xlsx') sheet = wb.active dataAtA1 = sheet('A1') dataAtA2 = sheet.cell(row=2, column=1) print('Data at A1:', dataAtA1.value) print('Data at A2:', dataAtA2.value)
Αποτέλεσμα:
Ανάγνωση όλων των τιμών στο αρχείο
Συνήθως, κατά τη δοκιμή λογισμικού, πρέπει να επαληθεύσουμε τη λειτουργικότητα χρησιμοποιώντας διάφορα σύνολα δεδομένων. Ας υποθέσουμε ότι όλα τα δεδομένα τοποθετούνται σε ένα βιβλίο εργασίας και πρέπει να δοκιμάσουμε τη λειτουργικότητα χρησιμοποιώντας όλα τα δεδομένα. Πρέπει λοιπόν να διασχίσουμε κάθε σειρά και στήλη για να ανακτήσουμε τις τιμές. Για ένα μεγάλο σύνολο δεδομένων, η παραπάνω μέθοδος δεν είναι εφικτή. Για να το επιτύχουμε αυτό, πρέπει να επαναλάβουμε ολόκληρο το φύλλο για να πάρουμε τις τιμές.
Πρέπει πρώτα να λάβουμε τον αριθμό των σειρών και τον αριθμό των στηλών στο φύλλο.
- max_row- Αυτό δίνει το μέγιστο ευρετήριο σειρών που περιέχει δεδομένα (με βάση 1)
- μέγ. στήλη - Το μέγιστο ευρετήριο στηλών που περιέχει δεδομένα (με βάση 1)
row_count = sheet.max_row column_count = sheet.max_column
Σημείωση: max_row και max_column είναι 1-βασισμένη ευρετηρίαση. Για να μεταβούμε στην τελευταία σειρά, πρέπει να προσθέσουμε ένα στην τιμή μέτρησης.
Παρακάτω είναι ο πλήρης κωδικός για να διαβάσετε τις τιμές:
from openpyxl import load_workbook wb = load_workbook('demo.xlsx') sheet = wb('Day2 Result 27.07.2020') row_count = sheet.max_row column_count = sheet.max_column for i in range(1, row_count + 1): for j in range(1, column_count + 1): data = sheet.cell(row=i, column=j).value print(data, end=' ') print('
')
Σημείωση: Έχουμε χρησιμοποιήσει το τέλος = '' για να έχουμε κενό μεταξύ κάθε στήλης και νέας γραμμής ( n) για να εκτυπώσουμε τις τιμές σε μια νέα σειρά.
Αποτέλεσμα:
Λήψη επιστολής στήλης
Ας υποθέσουμε ότι έχετε ένα μεγάλο σύνολο δεδομένων που είναι αποθηκευμένα σε ένα βιβλίο εργασίας και θέλετε να μάθετε σε ποια ευρετήριο και στήλη υπάρχει μια συγκεκριμένη τιμή. Μπορείτε να το βρείτε χρησιμοποιώντας get_column_letter. Αυτό μετατρέπει ένα ευρετήριο στήλης σε γράμμα στήλης. Παράδειγμα 3 έως Γ.
Ανατρέξτε στον παρακάτω κωδικό:
from openpyxl import load_workbook from openpyxl.utils import get_column_letter wb = load_workbook('demo.xlsx') sheet = wb('Day2 Result 27.07.2020') row_count = sheet.max_row column_count = sheet.max_column for i in range(1, row_count + 1): for j in range(1, column_count + 1): data = sheet.cell(row=i, column=j).value if data=='ABC': column_letter = get_column_letter(j) print('ABC employee name is present in column ', column_letter, 'and in row index ', i )
Αποτέλεσμα:
Δοκιμή βάσει δεδομένων
Τώρα που γνωρίζουμε ότι το Openpyxl μας βοηθά να διαβάζουμε και να γράφουμε δεδομένα από το Excel, θα χρησιμοποιήσουμε αυτές τις έννοιες για να δημιουργήσουμε μια δοκιμαστική θήκη για να δοκιμάσουμε την εφαρμογή με πολλές διαφορετικές τιμές που ανακτώνται από το υπολογιστικό φύλλο. Έτσι επιτυγχάνεται δοκιμή βάσει δεδομένων.
>> Συνιστώμενη ανάγνωση: Πώς λειτουργεί η δοκιμή βάσει δεδομένων
Εξετάστε ένα σενάριο όπου θα συνδεθούμε στο Facebook.com, θα διαβάσετε διαπιστευτήρια σύνδεσης από το βιβλίο εργασίας, επαληθεύστε τον τίτλο της σελίδας μετά τη σύνδεση και γράψτε το αποτέλεσμα πίσω στο ίδιο βιβλίο εργασίας.
Βήμα | Δράση | Αναμενόμενο Αποτέλεσμα |
---|---|---|
7 | Επαληθεύστε τον τίτλο της σελίδας | Το Facebook πρέπει να είναι ο τίτλος της σελίδας |
1 | Ανοίξτε το πρόγραμμα περιήγησης Chrome | Το πρόγραμμα περιήγησης Chrome θα πρέπει να ξεκινήσει με επιτυχία |
δύο | Μεταβείτε στο www.facebook.com | Η ιστοσελίδα του Facebook πρέπει να ανοίξει |
3 | Μεγιστοποιήστε το παράθυρο του προγράμματος περιήγησης | Το παράθυρο του προγράμματος περιήγησης πρέπει να μεγιστοποιηθεί |
4 | Διαβάστε τα δεδομένα από το Excel και εισαγάγετε Email | Πρέπει να εμφανίζεται το email που έχει εισαχθεί |
5 | Διαβάστε τα δεδομένα από το Excel και εισαγάγετε τον κωδικό πρόσβασης | Πρέπει να εμφανίζεται ο κωδικός πρόσβασης που έχετε εισάγει |
6 | Κάντε κλικ στο Σύνδεση | Θα πρέπει να εμφανίζεται η κατάλληλη σελίδα |
8 | Γράψτε το αποτέλεσμα στο Excel | Το βιβλίο εργασίας πρέπει να ενημερωθεί με το αποτέλεσμα |
Επαναλάβετε το παραπάνω σενάριο για διάφορα διαπιστευτήρια σύνδεσης
Δημιουργία αρχείου Excel με δεδομένα εισαγωγής
Ας δημιουργήσουμε ένα αρχείο με διαπιστευτήρια σύνδεσης, αναμενόμενο τίτλο, πραγματικό τίτλο και το πεδίο αποτελεσμάτων και να το αποθηκεύσουμε ως Inputdata.xlsx.
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | Κωδικός πρόσβασης | Αναμενόμενος τίτλος | Πραγματικός τίτλος | Αποτέλεσμα |
---|---|---|---|---|
falsectusrname@example.com | Λάθος κωδικός | |||
correctusrname@example.com | Λάθος κωδικός | |||
falsectusrname@example.com | σωστός κωδικός πρόσβασης | |||
correctusrname@example.com | σωστός κωδικός πρόσβασης |
Σημείωση: Αυτό είναι ένα εικονικό αρχείο που χρησιμοποιείται για να δείξει ένα παράδειγμα. Συμπληρώστε το σωστό email και τον κωδικό πρόσβασης ενώ ασκείστε το σενάριο.
Γράφοντας σενάριο δοκιμής
Κοιτάζοντας το παραπάνω αρχείο εισαγωγής, μπορούμε να πούμε ότι πρέπει να επαναλάβουμε το σενάριο 4 φορές για 4 διαφορετικά διαπιστευτήρια. Έτσι, για να αποφευχθεί ο πλεονασμός, ας δημιουργήσουμε μια ξεχωριστή τάξη που θα περιέχει συναρτήσεις για την ανάγνωση και τη σύνταξη του αρχείου Excel. Το ονομάσαμε ως ExcelUtils.
Παρακάτω είναι ο κωδικός ExcelUtils:
import openpyxl def readData(file,sheetname,rownum,colnum): workbook = openpyxl.load_workbook(file) sheet = workbook(sheetname) inputvalue =sheet.cell(row=rownum, column=colnum).value return inputvalue def writeData(file,sheetname,rownum, colnum,data): workbook = openpyxl.load_workbook(file) sheet = workbook(sheetname) sheet.cell(row=rownum, column=colnum).value= data workbook.save(file)
Τώρα εισαγάγετε την κλάση ExcelUtils.py στην κύρια τάξη σας και θα είμαστε σε θέση να επαναχρησιμοποιήσουμε τις λειτουργίες ανάγνωσης και εγγραφής
Θα διαβάσουμε το email και τον κωδικό πρόσβασης από το αρχείο Excel και θα συνδεθούμε στο Facebook. Εάν η σύνδεση είναι επιτυχής, τότε το σενάριο θα ενημερώσει το αποτέλεσμα στο αρχείο ως Passed. Εάν η σύνδεση δεν είναι επιτυχής, τότε το σενάριο θα ενημερώσει τον πραγματικό τίτλο της σελίδας και θα επισημάνει το αποτέλεσμα ως Αποτυχημένο.
Σημείωση: Εγκαταστήστε βιβλιοθήκες Selenium στο IDE σας, δεν μπορείτε να εκτελέσετε τον κώδικα χωρίς αυτό. εγκατάσταση pip Selenium χρησιμοποιείται η εντολή για την εγκατάσταση βιβλιοθηκών Selenium.
Ακολουθεί ο πλήρης κωδικός:
from openpyxl import load_workbook from selenium import webdriver from ExcelTest import ExcelUtils driver=webdriver.Chrome (r'C:UsersAdminPycharmProjectsSeleniumTestDriverschromedriver.exe') driver.get('https://www.facebook.com/') driver.maximize_window() file = 'InputData.xlsx' wb = load_workbook(file) sheet=wb.active row_count = sheet.max_row col_count = sheet.max_column for r in range(2,row_count+1): email= ExcelUtils.readData(file, 'Sheet1', r, 1) password = ExcelUtils.readData(file, 'Sheet1', r, 2) driver.find_element_by_id('email').send_keys(email) driver.find_element_by_id('pass').send_keys(password) driver.find_element_by_id('u_0_b').click() time.sleep(6) pagetitle=driver.title print(pagetitle) if pagetitle=='Facebook': ExcelUtils.writeData(file,'Sheet1',r,5,'Passed') else: ExcelUtils.writeData(file,'Sheet1',r,4,pagetitle) ExcelUtils.writeData(file,'Sheet1',r,5,'Failed') driver.find_element_by_xpath ('//*(@id='blueBarDOMInspector')/div/div(1)/div/div/h1/a/i').click()
Αποτέλεσμα:
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | Κωδικός πρόσβασης | Αναμενόμενος τίτλος | Πραγματικός τίτλος | Αποτέλεσμα |
---|---|---|---|---|
falsectusrname@example.com | Λάθος κωδικός | Συνδεθείτε στο Facebook | Facebook | Απέτυχε | |
correctusrname@example.com | Λάθος κωδικός | Συνδεθείτε στο Facebook | Facebook | Απέτυχε | |
falsectusrname@example.com | σωστός κωδικός πρόσβασης | Βοήθεια σύνδεσης | Απέτυχε | |
correctusrname@example.com | σωστός κωδικός πρόσβασης | Πέρασε |
Ανέβασμα αρχείου
Μόλις αρχίσετε να αυτοματοποιείτε τα έργα σε πραγματικό χρόνο, αργά ή γρήγορα θα εκτελέσετε μεταφορτώσεις αρχείων. Για παράδειγμα, ανεβάζοντας το αρχείο αποτελεσμάτων στην κοινόχρηστη μονάδα δίσκου ή τη δοκιμή της εφαρμογής φορτώνοντας ένα αρχείο κ.λπ. Το πρόβλημα με τη μεταφόρτωση αρχείου είναι, μόλις κάνετε κλικ στο κουμπί μεταφόρτωσης, τότε το παράθυρο διαλόγου επιλογής αρχείου που ανοίγει δεν ανήκει στο πρόγραμμα περιήγησης, δεν μπορείτε να το ελέγξετε χρησιμοποιώντας το Σελήνιο.
Για να το επιτύχουμε αυτό, πρέπει να περάσουμε απευθείας τη διαδρομή αρχείου στο στοιχείο εισαγωγής.
elementinput = driver.find_element_by_id('content') elementinput.send_keys(r'C:UsersAdminPycharmProjectsopen1TestInputData.xlsx')
Πρέπει να επιλέξουμε το στοιχείο εισαγωγής και μετά να περάσουμε τη διαδρομή του αρχείου σε αυτό χρησιμοποιώντας το send_keys μέθοδος.
(εικόνα πηγή )
Σε αυτό το παράδειγμα, παίρνουμε το webelement πεδίου εισαγωγής του id ('content') και περνάμε απευθείας το path με τα πλήκτρα send.
Παρακάτω είναι ο κωδικός για τη μεταφόρτωση ενός αρχείου Excel.
from selenium import webdriver driver=webdriver.Chrome(r'C:UsersAdminPycharmProjectsSeleniumTestDriverschromedriver.exe') driver.get('https://sheet.zoho.com/sheet/Excelviewer') driver.maximize_window() elementinput = driver.find_element_by_id('content') elementinput.send_keys(r'C:UsersAdminPycharmProjectsopen1TestInputData.xlsx')
Αποτέλεσμα:
Λήψη αρχείου
Η λήψη ενός αρχείου είναι αρκετά απλή στο Selenium. Βρείτε το στοιχείο ιστού του αρχείου και το κουμπί λήψης. Αλλά συνήθως, τα αρχεία λαμβάνονται στον φάκελο λήψης.
Εάν θέλετε να κάνετε λήψη των αρχείων σε έναν συγκεκριμένο φάκελο, τότε θα πρέπει να χρησιμοποιήσετε επιλογές χρώματος και να καθορίσετε τη διαδρομή του φακέλου στον οποίο πρέπει να γίνει λήψη του αρχείου.
Ανατρέξτε στον παρακάτω κώδικα:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chromeOptions = Options() chromeOptions.add_experimental_option('prefs',{'download.default_directory':r 'C:UsersAdminPycharmProjectsopen1ExcelTest'}) driver = webdriver.Chrome(executable_path=r'C:UsersAdminPycharmProjectsSelenium TestDriverschromedriver.exe',chrome_options=chromeOptions) driver.get('https://file-examples.com/index.php/sample-documents- download/sample-xls-download/') driver.find_element_by_xpath('//*(@download='file_example_XLSX_10.xlsx')').click()
Αυτός ο κωδικός θα κατεβάσει το αρχείο στη διαδρομή που καθορίσατε από εσάς.
Αποτέλεσμα:
Συχνές Ερωτήσεις
Ε # 1) Πώς μπορώ να εγκαταστήσω το Openpyxl;
Απάντηση: Πρέπει να εκτελέσουμε μια εντολή για να βάλουμε τις βιβλιοθήκες στο Python μας. Ανοίξτε τη γραμμή εντολών και αλλάξτε τον κατάλογο στον κατάλογο εργασίας Python και εκτελέστε την παρακάτω εντολή.
pip install openpyxl
Ε # 2) Μπορώ να χρησιμοποιήσω το Python στο Excel;
Απάντηση: Η λειτουργική μονάδα Openpyxl επιτρέπει στην Python να διαβάζει δεδομένα από ένα αρχείο Excel και μας επιτρέπει επίσης να γράφουμε / τροποποιούμε / προσθέτουμε δεδομένα στο ίδιο.
Q # 3) Πώς μπορώ να φορτώσω ένα βιβλίο εργασίας στο Openpyxl;
Απάντηση:
#Import load_workbook
από το openpyxl import load_workbook
# Φορτώστε το βιβλίο εργασίας
wb = load_workbook (διαδρομή του βιβλίου εργασίας)
Παράδειγμα- wb = load_workbook ('C: \ Users \ demo.xlsx')
Q # 4) Λειτουργεί το Openpyxl με το XLS;
Απάντηση: Όχι, δεν υποστηρίζει XLS. Εάν προσπαθήσετε να χρησιμοποιήσετε τη μορφή αρχείου .XLS, η Python θα κάνει εξαίρεση.
αύξηση InvalidFileException (msg)
openpyxl.utils.exceptions.InvalidFileException: Το openpyxl δεν υποστηρίζει την παλιά μορφή αρχείου .xls, χρησιμοποιήστε το xlrd για να διαβάσετε αυτό το αρχείο ή να το μετατρέψετε στην πιο πρόσφατη μορφή αρχείου .xlsx.
Περαιτέρω μάθηση = >> Χειρισμός εξαίρεσης στο Python
Ε # 5) Πώς μπορώ να βρω ποια έκδοση του Openpyxl έχω;
Απάντηση: Ανοίξτε τη γραμμή εντολών. Αλλάξτε τον κατάλογο στο φάκελο στον οποίο είναι εγκατεστημένο το Python και, στη συνέχεια, εκτελέστε την εντολή λίστα pip . Αυτό θα δώσει όλα τα πακέτα που έχουν εγκατασταθεί μαζί με την έκδοση τους.
Ε # 6) Λειτουργεί το Openpyxl με το Excel 2016;
Απάντηση: Ναι, υποστηρίζει μορφές αρχείων xlsx, xlsm, xltx και xltm.
Ε # 7) Πώς μπορώ να δημιουργήσω ένα νέο φύλλο στο Openpyxl;
Απάντηση: Για να προσθέσετε νέα φύλλα στη χρήση του Excel
create_sheet(title=None, index=None)
Δημιουργήστε ένα φύλλο εργασίας (σε προαιρετικό ευρετήριο).
Παράμετροι :
- τίτλος (str) - προαιρετικός τίτλος του φύλλου.
- ευρετήριο (int) - προαιρετική θέση στην οποία θα εισαχθεί το φύλλο.
Σημείωση: δεν εισέρχεται Εάν οι παράμετροι τότε δημιουργεί φύλλο μετά το τελευταίο φύλλο και το ονομάζει ως 'φύλλο'
Παράδειγμα - wb.create_sheet (ευρετήριο = 3, τίτλος = 'Day4')
Ε # 8) Πώς μπορώ να κλείσω ένα βιβλίο εργασίας στο Openpyxl;
Απάντηση: Workbook_Object.close ()
Αυτό θα κλείσει το αρχείο του βιβλίου εργασίας εάν είναι ανοιχτό. Επηρεάζει μόνο τις λειτουργίες μόνο για ανάγνωση και μόνο για εγγραφή. Παράδειγμα - Κλείσιμο ()
Μόλις κλείσετε το βιβλίο εργασίας. Δεν θα σας επιτραπεί να το χρησιμοποιήσετε ξανά έως ότου φορτώσετε ξανά το βιβλίο εργασίας.
Ε # 9) Πώς να λύσετε - δεν υπάρχει σφάλμα με το όνομα «openpyxl»;
Απάντηση: ModuleNotFoundError: Δεν παρουσιάζεται σφάλμα με λειτουργική μονάδα με όνομα openpyxl όταν δεν είναι εγκατεστημένη.
Εάν έχετε εγκαταστήσει και τις δύο εκδόσεις Python2.x και Python3.x στον ίδιο υπολογιστή, χρησιμοποιήστε το pip για εγκατάσταση στο Python2.x και το pip3 για εγκατάσταση στο Python3.x.
Παράδειγμα -
εγκατάσταση pip openpyxl - Εγκαταστήστε την ενότητα Openpyxl στο Python2.x
πώς να ανοίξετε το αρχείο .java
εγκατάσταση του pip3 openpyxl - Εγκαταστήστε την ενότητα Openpyxl στο Python3.x
Ε # 10) Πώς να ανοίξετε ένα αρχείο Excel που υπάρχει ήδη χρησιμοποιώντας το Openpyxl;
Απάντηση: Εάν έχετε ήδη ένα αρχείο Excel, χρησιμοποιήστε το load_workbook λειτουργία για άνοιγμα.
Εάν το αρχείο βρίσκεται στον τρέχοντα κατάλογο εργασίας του python, απλώς γράψτε το όνομα αρχείου ως όρισμα σε αυτήν τη λειτουργία.
Παράδειγμα - από το openpyxl import load_workbook
wb = load_workbook ('myexcelfile.xlsx')
Εάν το αρχείο σας δεν βρίσκεται στον κατάλογο εργασίας python, αναφέρετε τη διαδρομή του αρχείου ως παράμετρο για τη φόρτωση του βιβλίου εργασίας.
Παράδειγμα - από το openpyxl import load_workbook
wb = load_workbook ('C: \ Users \ myexcelfile.xlsx')
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε για τη βιβλιοθήκη Openpyxl, η οποία μας δίνει την ευελιξία να αλληλεπιδρούμε με το Excel και, επομένως, διευκολύνει τις δοκιμές βάσει δεδομένων.
Παρακάτω αναφέρονται η ουσία αυτού του σεμιναρίου:
- Πρόκειται για μια βιβλιοθήκη Python που μας επιτρέπει να χρησιμοποιήσουμε το Excel για να εκτελέσουμε ενέργειες όπως ανάγνωση δεδομένων και συγγραφή δεδομένων.
- Αυτή η βιβλιοθήκη Python μπορεί να εγκατασταθεί με μία μόνο εντολή εγκατάσταση pip openpyxl .
- Αυτή η ενότητα μπορεί εύκολα να εγκατασταθεί στο PyCharm IDE χρησιμοποιώντας το παράθυρο Διαθέσιμα Πακέτα.
- Έχουμε δει πώς να δημιουργήσουμε ένα βιβλίο εργασίας και να γράψουμε δεδομένα στο ίδιο.
- Μας επιτρέπει επίσης να μετονομάσουμε τα ονόματα των φύλλων, να δημιουργήσουμε νέα φύλλα και επίσης να αφαιρέσουμε τα φύλλα.
- Η ανάγνωση μιας μεμονωμένης τιμής κελιού ή η ανάγνωση ολόκληρου του βιβλίου εργασίας μπορεί να γίνει χρησιμοποιώντας αυτήν τη βιβλιοθήκη.
- Έχουμε δει επίσης ένα δείγμα δοκιμαστικού σεναρίου που δείχνει πώς μπορεί να πραγματοποιηθεί μια δοκιμή βάσει δεδομένων.
- Η αποστολή και λήψη του αρχείου χρησιμοποιώντας σελήνιο περιγράφεται επίσης σε αυτό το σεμινάριο.
Συνιστώμενη ανάγνωση
- Πώς να ανοίξετε το αρχείο XML σε Excel, Chrome και MS Word
- Εκμάθηση Python για αρχάριους (ΔΩΡΕΑΝ Εκπαίδευση Python)
- Εργασία με αντικείμενα VBScript Excel
- 12 καλύτεροι Python IDE και Code Editors το 2021
- Πώς να διαβάσετε ή να γράψετε δεδομένα από το φύλλο Excel στο πρόγραμμα οδήγησης Web Selenium
- Εκμάθηση χειρισμού αρχείων Python: Πώς να δημιουργήσετε, να ανοίξετε, να διαβάσετε, να γράψετε
- Εκπαιδευτικό πρόγραμμα Python Main Function με πρακτικά παραδείγματα
- Εκμάθηση Python Tuple με πρακτικά παραδείγματα