hands python openpyxl tutorial with examples
पायथन लाइब्रेरी के लिए पूर्ण गाइड Openpyxl में इंस्टॉलेशन शामिल है, एक नई वर्कशीट कैसे बनाई जाए, कार्यस्थल से डेटा पढ़ें / लिखें / हटाएं:
एक्सेल सबसे लोकप्रिय स्प्रेडशीट एप्लिकेशन है जिसका उपयोग सूचनाओं को बेहतर ढंग से व्यवस्थित करने, गणना करने, आउटपुट चार्ट बनाने और बहुत कुछ करने के लिए किया जाता है। परीक्षण की दुनिया में, उच्च गुणवत्ता वाले उत्पाद और अच्छे परीक्षण कवरेज प्राप्त करने के लिए डेटा के विभिन्न सेटों के साथ आवेदन को सत्यापित करना महत्वपूर्ण है।
Openpyxl एक ऐसी लाइब्रेरी है जो हमें एक्सेल का उपयोग डेटा संचालित परीक्षण करने और यहां तक कि परीक्षा परिणाम रिपोर्ट तैयार करने आदि के लिए भी करती है।
इस ट्यूटोरियल में हम सीखेंगे कि Openpyxl क्या है, इसकी स्थापना, एक नई कार्यपुस्तिका बनाना, स्प्रेडशीट से डेटा पढ़ना, और इसमें डेटा भी लिखना है। हम यह भी सीखेंगे कि वेब पेज से कैसे अपलोड और डाउनलोड करें।
आप क्या सीखेंगे:
- Openpyxl क्या है
- कैसे Openpyxl स्थापित करने के लिए
- PyCharm IDE का विन्यास
- एक नई एक्सेल वर्कबुक बनाएं
- एक्सेल फ़ाइल में डेटा लिखें
- एक्सेल फ़ाइल में शीट का नाम बदलें
- एक्सेल फ़ाइल में शीट जोड़ें
- शीट में कई मानों को लागू करना
- एक्सेल वर्कबुक से एक शीट हटाएं
- एक्सेल फ़ाइल से डेटा पढ़ना
- फ़ाइल में सभी मूल्यों को पढ़ना
- कॉलम पत्र प्राप्त करना
- डेटा-चालित परीक्षण
- निष्कर्ष
Openpyxl क्या है
Openpyxl एक पायथन लाइब्रेरी है जिसका उपयोग एक्सेल फाइल (xlsx / xlsm / xltx / xltm फाइल) को पढ़ने और लिखने के लिए किया जाता है। यह मॉड्यूल पाइथन कार्यक्रमों को स्प्रेडशीट को पढ़ने और संशोधित करने की अनुमति देता है।
XLSX फ़ाइल Microsoft Excel के लिए डिफ़ॉल्ट फ़ाइल स्वरूप है। यह Office Open XML मानक पर आधारित है।
एक्सएलएसएम फ़ाइल एक मैक्रो-सक्षम स्प्रेडशीट फ़ाइल है।
XLTX फ़ाइल एक एक्सेल टेम्पलेट फ़ाइल है जो उपयोगकर्ता द्वारा परिभाषित सेटिंग्स को संरक्षित करती है।
XLTM फ़ाइल एक मैक्रो-सक्षम टेम्पलेट फ़ाइल है जो Microsoft Excel के साथ बनाई गई है।
कैसे Openpyxl स्थापित करने के लिए
जब आप पायथन स्थापित करते हैं, तो Openpyxl लाइब्रेरी डिफ़ॉल्ट रूप से स्थापित नहीं होती हैं। हमें अपने पायथन में पुस्तकालयों को प्राप्त करने के लिए एक कमांड निष्पादित करना होगा। इसके लिए, आपको कमांड प्रॉम्प्ट को खोलने और निर्देशिका को उस फ़ोल्डर में बदलने की आवश्यकता है जहां आपका पायथन रखा गया है और नीचे दिए गए कमांड को निष्पादित करें।
pip install openpyxl
एक बार जब आप कमांड निष्पादित करते हैं, तो पुस्तकालयों को डाउनलोड और इंस्टॉल किया जाएगा। इसका उपयोग करके सत्यापित किया जा सकता है पाइप सूची कमांड जैसा कि नीचे दी गई छवि में दिखाया गया है।
PyCharm IDE का विन्यास
PyCharm में एक परियोजना के लिए Openpyxl पुस्तकालयों को कॉन्फ़िगर करने के 2 तरीके हैं।
# 1) Pyharm में उपलब्ध संकुल विकल्प का उपयोग करना
पर क्लिक करें फ़ाइल-> नई परियोजना। क्रिएट पर क्लिक करें।
आपका प्रोजेक्ट सफलतापूर्वक बनाया जाएगा। यह सत्यापित करने के लिए कि पुस्तकालय कॉन्फ़िगर किए गए हैं, पर जाएं फ़ाइल -> सेटिंग्स । सेटिंग पृष्ठ में, पर जाएं प्रोजेक्ट -> प्रोजेक्ट इंटरप्रेटर ।
पैकेज के तहत, आप फिर Openpyxl पैकेज देखेंगे। अगर वह गायब है, तो 'पर मारो' + 'दाहिने कोने पर बटन। उपलब्ध पैकेज के तहत Openpyxl और Hit Install Package की खोज करें, जैसा कि नीचे दी गई छवि में दिखाया गया है। स्थापना पूर्ण होने के बाद, आपको 'पैकेज x ओपनपीएक्सएल 'सफलतापूर्वक स्थापित हो जाएगा'
सत्यापित करें कि पैकेज सफलतापूर्वक स्थापित है या नहीं।
# 2) वैश्विक साइट-संकुल विकल्प से इनहेरिट का उपयोग करना
यह विधि काफी सरल है। के लिए जाओ फ़ाइल-> नई परियोजना । एक नई परियोजना का चयन करते समय ' इनहेरिट ग्लोबल साइट- पैकेज “चेकबॉक्स। प्रोजेक्ट बनने के बाद, नेविगेट करने के लिए फ़ाइल -> सेटिंग्स-> परियोजना -> परियोजना दुभाषिया , आप देखेंगे कि Openpyxl पैकेज पहले से स्थापित है।
एक नई एक्सेल वर्कबुक बनाएं
हम एक नई कार्यपुस्तिका बनाकर शुरू करेंगे। एक्सेल फ़ाइल को वर्कबुक कहा जाता है जिसमें न्यूनतम एक शीट होती है। कार्यपुस्तिका बनाने के लिए, हमें सबसे पहले Openpyxl लाइब्रेरी से नीचे दिए गए कमांड का उपयोग करके कार्यपुस्तिका को आयात करना होगा:
from openpyxl import Workbook
कार्यपुस्तिका ऑब्जेक्ट बनाएं। हम इस ऑब्जेक्ट का उपयोग उन सभी कार्यों को संभालने के लिए कर सकते हैं, जिन्हें पढ़ने, लिखने आदि के लिए आवश्यक है।
wb = Workbook()
जहाँ आप नीचे दी गई कार्यपुस्तिका बनाना चाहते हैं, वहाँ फ़ाइलपथ सेट करें:
filepath = :”F:/tutorial/sample.xlsx”
कार्यपुस्तिका के उपयोग को सहेजने के लिए
wb.save(filepath)
यह निर्दिष्ट पथ में एक नई खाली एक्सेल फाइल बनाएगा।
यदि आप पायथन स्क्रिप्ट के समान स्थान पर एक नई एक्सेल फ़ाइल बनाना चाहते हैं, तो आप फ़ाइलपथ छोड़ सकते हैं और सीधे फ़ाइल नाम का उल्लेख कर सकते हैं wb.save नीचे दिखाए अनुसार कमांड:
from openpyxl import Workbook wb = Workbook() wb.save('demo.xlsx')
एक्सेल फ़ाइल में डेटा लिखें
अब जब हम जानते हैं कि नई फ़ाइल कैसे बनाई जाए, तो आगे बढ़ें और फ़ाइल में डेटा भरें। इसे प्राप्त करने के लिए, हमें उस कार्यपुस्तिका को लोड करना होगा जिसे हमने ऊपर बनाया है। यह नीचे दिए गए आदेश का उपयोग करके किया जा सकता है:
wb = load_workbook(“demo.xlsx”)
हमें यह निर्दिष्ट करना होगा कि हम किस शीट में डेटा दर्ज करने जा रहे हैं। चूंकि हमारे पास सिर्फ एक शीट है, हम केवल 'सक्रिय' कीवर्ड का उपयोग कर सकते हैं और यह डेटा को दर्ज करने के लिए वर्तमान सक्रिय शीट का उपयोग करेगा।
sheet = wb.active
यदि आपके पास कई शीट हैं, तो आपको नीचे दिए गए अनुसार, वर्कशीट के नाम का उल्लेख करना होगा। जहां शीटनाम कार्यपुस्तिका में शीट का नाम है।
sheet = wb('SheetName')
Excel फ़ाइल में डेटा दर्ज करने के 2 तरीके हैं। ये इस प्रकार हैं:
- सीधे स्तंभ संयोजन का उपयोग करें। उदाहरण (A1), जहां A स्तंभ है और 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 और 'ओपनपीएक्सएल ट्यूटोरियल', 13.4 इन 1 लिखेगासेंटऔर 2एन डीक्रमशः नीचे दिखाए अनुसार।
एक्सेल फ़ाइल में शीट का नाम बदलें
मामले में आप रिपोर्ट की तारीख को ट्रैक कर रहे हैं और आप शीट का नाम बदलकर वर्तमान तारीख करना चाहते हैं। यह 'शीर्षक' कमांड के माध्यम से किया जा सकता है।
इस परिदृश्य के लिए, हमें वर्तमान तिथि प्राप्त करने की आवश्यकता है। तो पहले, हमें डेटाइम पैकेज आयात करना होगा।
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 में नई शीट जोड़ने के लिए, का उपयोग करें 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)
जहाँ चलने योग्य मान या एकल मान की एक सूची है।
सी ++ स्रोत कोड में बाइनरी ट्री कार्यान्वयन
- यदि यह एक सूची है, पहले कॉलम से शुरू करके सभी मान क्रम में जोड़े गए हैं।
- यदि यह एक मूल्य है, तब मान कुंजियों (संख्याओं या अक्षरों) द्वारा इंगित किए गए स्तंभों को दिए जाते हैं।
नीचे दिए गए कोड का संदर्भ लें:
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')
परिणाम:
ध्यान दें: आप शीट नामों का उपयोग करके प्रिंट कर सकते हैं प्रिंट ('सक्रिय शीट शीर्षक:' + sheet.title)
एक्सेल वर्कबुक से एक शीट हटाएं
Openpyxl में, यदि आप एक शीट हटाते हैं, तो थोड़ा सावधान रहें क्योंकि यह पुनर्प्राप्त करने योग्य नहीं है। आइए 3 शीट के साथ एक एक्सेल शीट बनाएं और इसे 'शीट 1' 'शीट 2' 'शीट 3' के रूप में कॉल करें और इसे सहेजें DeleteSheet.xlsx ।
चादरों को जानना हमेशा बेहतर होता है, जो किसी को हटाने से पहले ही मौजूद होते हैं। आप इसके माध्यम से प्राप्त कर सकते हैं चादरें आज्ञा।
तब आप उपयोग कर सकते हैं wb.remove (शीट नाम) या डेल 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')
परिणाम:
एक्सेल फ़ाइल से डेटा पढ़ना
फ़ाइल में डेटा लिखने के समान, हम 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-आधारित)
- max_column - डेटा वाला अधिकतम कॉलम इंडेक्स (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 एक्सेल से डेटा पढ़ने और लिखने में हमारी मदद करता है, तो हम इन अवधारणाओं का उपयोग करके स्प्रेडशीट से प्राप्त कई अलग-अलग मूल्यों वाले एप्लिकेशन का परीक्षण करने के लिए एक परीक्षण केस का निर्माण करेंगे। इसलिए डेटा-संचालित परीक्षण प्राप्त करना।
>> अनुशंसित पढ़ना: डेटा-चालित परीक्षण कैसे काम करता है
उस परिदृश्य पर विचार करें जहां हम Facebook.com पर लॉग इन करेंगे, कार्यपुस्तिका से लॉगिन क्रेडेंशियल्स पढ़ें, लॉगिन के बाद पृष्ठ का शीर्षक सत्यापित करें, और उसी कार्यपुस्तिका पर वापस परिणाम लिखें।
कदम | कार्य | अपेक्षित परिणाम |
---|---|---|
। | पृष्ठ का शीर्षक सत्यापित करें | फेसबुक पेज का शीर्षक होना चाहिए |
1 | Chrome ब्राउज़र खोलें | क्रोम ब्राउज़र सफलतापूर्वक लॉन्च होना चाहिए |
दो | Www.facebook.com पर नेविगेट करें | फेसबुक वेबपेज खोला जाना चाहिए |
३ | ब्राउज़र विंडो को अधिकतम करें | ब्राउज़र विंडो को अधिकतम किया जाना चाहिए |
४ | एक्सेल से डेटा पढ़ें और ईमेल दर्ज करें | दर्ज ईमेल प्रदर्शित किया जाना चाहिए |
५ | एक्सेल से डेटा पढ़ें और पासवर्ड दर्ज करें | दर्ज पासवर्ड प्रदर्शित किया जाना चाहिए |
६ | लॉगिन पर क्लिक करें | उपयुक्त पृष्ठ प्रदर्शित किया जाना चाहिए |
। | परिणाम को एक्सेल में लिखें | कार्यपुस्तिका को परिणाम के साथ अद्यतन किया जाना चाहिए |
विभिन्न लॉगिन क्रेडेंशियल के लिए उपरोक्त परिदृश्य दोहराएं
इनपुट डेटा के साथ एक्सेल फाइल बनाना
आइए लॉगिन क्रेडेंशियल्स, अपेक्षित शीर्षक, वास्तविक शीर्षक और परिणाम फ़ील्ड के साथ एक फ़ाइल बनाएं और इसे इस रूप में सहेजें Inputdata.xlsx
ईमेल | कुंजिका | अपेक्षित शीर्षक | वास्तविक शीर्षक | परिणाम |
---|---|---|---|---|
wrongctusrname@example.com | गलत पासवर्ड | फेसबुक | ||
correctusrname@example.com | गलत पासवर्ड | फेसबुक | ||
wrongctusrname@example.com | सुधारने का यंत्र | फेसबुक | ||
correctusrname@example.com | सुधारने का यंत्र | फेसबुक |
ध्यान दें: यह एक डमी फ़ाइल है जिसका उपयोग एक उदाहरण दिखाने के लिए किया जाता है। स्क्रिप्ट का अभ्यास करते समय सही ईमेल और पासवर्ड भरें।
टेस्ट स्क्रिप्ट लिखना
उपरोक्त इनपुट फ़ाइल को देखते हुए, हम कह सकते हैं कि हमें 4 अलग-अलग क्रेडेंशियल के लिए स्क्रिप्ट को 4 बार दोहराना होगा। इसलिए अतिरेक से बचने के लिए, एक अलग वर्ग बनाएं, जिसमें एक्सेल फ़ाइल को पढ़ने और लिखने के लिए कार्य हों। हमने इसे 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 वर्ग का आयात करें और हम पढ़े और लिखे कार्यों का पुनः उपयोग करने में सक्षम होंगे
हम एक्सेल फ़ाइल से ईमेल और पासवर्ड पढ़ेंगे और फेसबुक पर लॉगिन करेंगे। यदि लॉगिन सफल होता है, तो स्क्रिप्ट फाइल में परिणाम को पास के रूप में अपडेट करेगी। यदि लॉगिन असफल है, तो स्क्रिप्ट पृष्ठ के वास्तविक शीर्षक को अपडेट करेगी और परिणाम को असफल के रूप में चिह्नित करेगी।
ध्यान दें: अपने IDE में सेलेनियम लाइब्रेरी स्थापित करें, आप उसके बिना कोड निष्पादित नहीं कर सकते। पाइप सेलेनियम स्थापित करें सेलेनियम लाइब्रेरी स्थापित करने के लिए कमांड का उपयोग किया जाता है।
नीचे पूरा कोड है:
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()
परिणाम:
मुझे नेटवर्क सुरक्षा कुंजी कहां मिल सकती है
ईमेल | कुंजिका | अपेक्षित शीर्षक | वास्तविक शीर्षक | परिणाम |
---|---|---|---|---|
wrongctusrname@example.com | गलत पासवर्ड | फेसबुक | फेसबुक पर लॉग इन करें | फेसबुक | अनुत्तीर्ण होना |
correctusrname@example.com | गलत पासवर्ड | फेसबुक | फेसबुक पर लॉग इन करें | फेसबुक | अनुत्तीर्ण होना |
wrongctusrname@example.com | सुधारने का यंत्र | फेसबुक | लॉगिन मदद | अनुत्तीर्ण होना |
correctusrname@example.com | सुधारने का यंत्र | फेसबुक | बीतने के |
फ़ाइल अपलोड करें
एक बार जब आप वास्तविक समय की परियोजनाओं को स्वचालित करना शुरू कर देते हैं, तो जल्दी या बाद में आप फ़ाइल अपलोड करने जा रहे हैं। उदाहरण के लिए, परिणाम फ़ाइल को साझा ड्राइव में अपलोड करना या किसी फ़ाइल को अपलोड करके एप्लिकेशन परीक्षण करना, आदि फ़ाइल अपलोड के साथ समस्या है, एक बार जब आप अपलोड बटन पर क्लिक करते हैं, तो फ़ाइल का चयन करने वाला डायलॉग बॉक्स खुल जाता है जो ब्राउज़र के स्वामित्व में नहीं है, इसलिए आप इसे सेलेनियम का उपयोग करके नियंत्रित नहीं कर सकते।
इसे प्राप्त करने के लिए, हमें फ़ाइल-पथ को सीधे इनपुट तत्व में पास करना होगा।
elementinput = driver.find_element_by_id('content') elementinput.send_keys(r'C:UsersAdminPycharmProjectsopen1TestInputData.xlsx')
हमें इनपुट एलिमेंट का चयन करना चाहिए और फिर फाइल का पथ पास करके इसे उपयोग करना चाहिए send_keys तरीका।
(छवि स्रोत )
इस उदाहरण में, हम आईडी ('कंटेंट') के इनपुट फील्ड वेटलिफ्टिंग को ले जा रहे हैं और सीधे फाइल कीथ का उपयोग कर सेंड कीज का उपयोग कर रहे हैं।
नीचे एक्सेल फाइल अपलोड करने का कोड दिया गया है।
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')
परिणाम:
फ़ाइल डाउनलोड करें
एक फाइल डाउनलोड करना सेलेनियम में काफी सरल है। फ़ाइल का वेब तत्व और डाउनलोड बटन खोजें। लेकिन आमतौर पर, फ़ाइलें डाउनलोड फ़ोल्डर के तहत डाउनलोड की जाती हैं।
यदि आप किसी विशिष्ट फ़ोल्डर में फ़ाइलों को डाउनलोड करना चाहते हैं, तो आपको क्रोम विकल्पों का उपयोग करना होगा और उस फ़ोल्डर के पथ को निर्दिष्ट करना होगा जहां फ़ाइल डाउनलोड की जानी है।
नीचे दिए गए कोड का संदर्भ लें:
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()
यह कोड आपके द्वारा निर्दिष्ट पथ में फ़ाइल डाउनलोड करेगा।
परिणाम:
बार बार पूछे जाने वाले प्रश्न
Q # 1) मैं Openpyxl कैसे स्थापित करूं?
उत्तर: हमें अपने पायथन में पुस्तकालयों को प्राप्त करने के लिए एक कमांड निष्पादित करना होगा। कमांड प्रॉम्प्ट खोलें और निर्देशिका को पायथन वर्किंग डायरेक्टरी में बदलें और नीचे कमांड निष्पादित करें।
pip install openpyxl
Q # 2) क्या मैं एक्सेल में पायथन का उपयोग कर सकता हूं?
उत्तर: Openpyxl मॉड्यूल पायथन को एक्सेल फ़ाइल से डेटा पढ़ने की अनुमति देता है और हमें डेटा को उसी में लिखने / संशोधित / संलग्न करने की भी अनुमति देता है।
Q # 3) मैं Openpyxl में वर्कबुक कैसे लोड कर सकता हूं?
उत्तर:
#Import load_workbook
Openpyxl आयात load_workbook से
# वर्कबुक को लाइक करें
wb = load_workbook (कार्यपुस्तिका का पथ)
उदाहरण- wb = load_workbook ('C: \ उपयोगकर्ता \ Demo.xlsx')
Q # 4) क्या Openpyxl XLS के साथ काम करता है?
उत्तर: नहीं, यह XLS का समर्थन नहीं करता है। यदि आप .XLS फ़ाइल प्रारूप का उपयोग करने का प्रयास करते हैं, तो पायथन अपवाद छोड़ देगा।
InvalidFileException (msg) बढ़ाएं
openpyxl.utils.exception.InvalidFileException: Openpyxl पुराने .xls फ़ाइल स्वरूप का समर्थन नहीं करता है, कृपया इस फ़ाइल को पढ़ने के लिए xlrd का उपयोग करें, या इसे और हाल ही में .xlsx फ़ाइल स्वरूप में परिवर्तित करें।
आगे की सीख = >> पायथन में अपवाद हैंडलिंग
Q # 5) मुझे कैसे पता चलेगा कि मेरे पास Openpyxl का कौन सा संस्करण है?
उत्तर: ओपन कमांड प्रॉम्प्ट। निर्देशिका को उस फ़ोल्डर में बदलें जहां आपका पायथन स्थापित है, फिर कमांड निष्पादित करें पाइप सूची । यह उनके संस्करण के साथ स्थापित सभी संकुल देगा।
Q # 6) क्या Openpyxl एक्सेल 2016 के साथ काम करता है?
उत्तर: हाँ, यह xlsx, xlsm, xltx और xltm फ़ाइल स्वरूपों का समर्थन करता है।
Q # 7) मैं Openpyxl में एक नई शीट कैसे बनाऊं?
उत्तर: Excel उपयोग के लिए नई शीट जोड़ने के लिए
create_sheet(title=None, index=None)
एक वर्कशीट (एक वैकल्पिक सूचकांक पर) बनाएँ।
मापदंडों :
- शीर्षक (str) - शीट का वैकल्पिक शीर्षक।
- सूचकांक (int) - वैकल्पिक स्थिति जिस पर शीट डाली जाएगी।
ध्यान दें: यह दर्ज नहीं होता है यदि पैरामीटर्स तब अंतिम शीट के बाद शीट बनाता है और इसे 'शीट' नाम देता है
उदाहरण - wb.create_sheet (इंडेक्स = 3, शीर्षक = 'Day4')
Q # 8) मैं Openpyxl में वर्कबुक कैसे बंद कर सकता हूं?
उत्तर: वर्कबुक_ऑब्जेक्ट.क्लोज ()
यदि खुला है तो कार्यपुस्तिका फ़ाइल को बंद कर देगा। यह केवल रीड-ओनली और राइट-ओनली मोड को प्रभावित करता है। उदाहरण - Wb.close ()
एक बार जब आप वर्कबुक बंद कर देंगे। जब तक आप कार्यपुस्तिका को एक बार फिर से लोड नहीं करते, तब तक आपको इसका दोबारा उपयोग करने की अनुमति नहीं दी जाएगी।
Q # 9) कैसे हल करें - 'Openpyxl' त्रुटि नाम का कोई मॉड्यूल नहीं?
उत्तर: ModuleNotFoundError: Openpyxl नाम का कोई भी मॉड्यूल तब नहीं होता है जब वह मॉड्यूल इंस्टॉल नहीं होता है।
यदि आपके पास Python2.x और Python3.x दोनों संस्करण एक ही मशीन में स्थापित हैं, तो Python2.x और pip3 में स्थापित करने के लिए Python3.x में स्थापित करने के लिए पाइप का उपयोग करें।
उदाहरण -
पाइप स्थापित करें Python2.x में Openpyxl मॉड्यूल स्थापित करें
pip3 इंस्टॉल करें ओपनपीएक्सएल - Python3.x में Openpyxl मॉड्यूल स्थापित करें
Q # 10) एक Excel फ़ाइल कैसे खोलें जो पहले से ही Openpyxl का उपयोग करके मौजूद है?
उत्तर: अगर आपके पास पहले से एक्सेल फाइल है तो इसका इस्तेमाल करें load_workbook खोलने के लिए कार्य करते हैं।
यदि फ़ाइल आपके पायथन करंट वर्किंग डायरेक्टरी में स्थित है, तो इस फ़ंक्शन के तर्क के रूप में फ़ाइल नाम लिखें।
उदाहरण - Openpyxl आयात load_workbook से
wb = load_workbook ('myexcelfile.xlsx')
यदि आपकी फ़ाइल आपके पायथन कार्य निर्देशिका में नहीं है, तो कार्यपुस्तिका को लोड करने के लिए एक पैरामीटर के रूप में फ़ाइल के पथ का उल्लेख करें।
उदाहरण - Openpyxl आयात load_workbook से
wb = load_workbook ('C: \ उपयोगकर्ता \ myexcelfile.xlsx')
निष्कर्ष
इस ट्यूटोरियल में, हमने Openpyxl लाइब्रेरी के बारे में सीखा है जो हमें एक्सेल के साथ बातचीत करने की सुविधा देता है और इसलिए डेटा-संचालित परीक्षण को आसान बनाता है।
नीचे इस ट्यूटोरियल का सार दिया गया है:
- यह एक पायथन लाइब्रेरी है जो हमें एक्सेल का उपयोग डेटा पढ़ने और डेटा लिखने जैसे कार्यों को करने की अनुमति देता है।
- यह पायथन लाइब्रेरी सिर्फ एक कमांड द्वारा स्थापित की जा सकती है पाइप स्थापित करें खसखस ।
- यह मॉड्यूल आसानी से उपलब्ध संकुल विंडो का उपयोग करके PyCharm IDE में स्थापित किया जा सकता है।
- हमने देखा है कि वर्कबुक कैसे बनाते हैं और उसी में डेटा लिखते हैं।
- यह हमें शीट नामों का नाम बदलने, नई चादरें बनाने और चादरें निकालने की भी अनुमति देता है।
- एक व्यक्तिगत सेल मान पढ़ना या संपूर्ण कार्यपुस्तिका पढ़ना इस पुस्तकालय का उपयोग करके किया जा सकता है।
- हमने एक नमूना परीक्षण स्क्रिप्ट भी देखी है जो दिखाती है कि डेटा-संचालित परीक्षण कैसे किया जा सकता है।
- सेलेनियम का उपयोग करके फ़ाइल को अपलोड और डाउनलोड करना भी इस ट्यूटोरियल में वर्णित है।
अनुशंसित पाठ
- एक्सेल, क्रोम और एमएस वर्ड में XML फाइल कैसे खोलें
- पायथन ट्यूटोरियल फॉर बिगिनर्स (हैंड्स-ऑन फ्री पायथन ट्रेनिंग)
- VBScript एक्सेल ऑब्जेक्ट्स के साथ काम करना
- 2021 में 12 बेस्ट पायथन आईडीई और कोड एडिटर
- सेलेनियम वेब ड्राइवर में एक्सेल शीट से डेटा कैसे पढ़ें या लिखें
- पायथन फाइल हैंडलिंग ट्यूटोरियल: कैसे बनाएं, खोलें, पढ़ें, लिखें
- हाथों पर उदाहरण के साथ अजगर मुख्य समारोह ट्यूटोरियल
- हाथों पर उदाहरण के साथ पायथन टपल ट्यूटोरियल