{"id":527,"date":"2021-06-06T08:48:52","date_gmt":"2021-06-06T08:48:52","guid":{"rendered":"https:\/\/rahulshettyacademy.com\/blog\/?p=527"},"modified":"2021-07-25T16:46:14","modified_gmt":"2021-07-25T16:46:14","slug":"how-to-read-write-data-from-excel-for-selenium-datadriven-tests-in-python","status":"publish","type":"post","link":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/2021\/06\/06\/how-to-read-write-data-from-excel-for-selenium-datadriven-tests-in-python\/","title":{"rendered":"How to Read\/ Write data from Excel for Selenium DataDriven tests in Python"},"content":{"rendered":"<h3 style=\"text-align: left;\"><b>Introduction to Excel Data Driven Testing<\/b><\/h3>\n<p>To interact with excel in Python is a straightforward process. We have to use the <b>openpyxl<\/b> library in Python which helps to read\/write in excel. This package is not available by default in the installed Python packages. We have to download by running the command <b>pip install openpyxl <\/b>from the terminal.<\/p>\n<p><strong>Conclusion:<\/strong> Thus we have discussed the openpyxl library in Python. For more details, you can refer to the link:<\/p>\n<p><a href=\"https:\/\/courses.rahulshettyacademy.com\/courses\/learn-selenium-automation-in-easy-python-language\/lectures\/13248584\" style=\"outline: none;\">https:\/\/courses.rahulshettyacademy.com\/courses\/learn-selenium-automation-in-easy-python-language\/lectures\/13248584<\/a><\/p>\n<p>In the next section we shall discuss how to perform read\/write operations with excel in Python.<\/p>\n<h3><b>Operations to Read and Write the Data from Excel<\/b><\/h3>\n<p>Let us take an excel workbook having name <b>PythonExcel.xlsx<\/b> and populate the data within its Sheet1 as shown in the below image:<\/p>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUwAAABqCAYAAADX7GjAAAAgAElEQVR4Ae29B1iU17r27zn\/U\/7ft8\/Z2XsnO3Gn2nsXFLvYECto7KBiT9FEjTExGmtiL1FjizWxF9TYuygqoghSRBCQNswwlaH333etGQYGRKQNDsn7XteCt6613vt+1z3rWeVZNeLi4qjsIJfLCQ0NJTIyErFf2fFL8ZWdM8FDbGwsT58+lfiwwDdfGd+k4EZwJJWZsn\/fpcVfYBseHm4I5cG5RmkTKst9CoWC4OBgSTCtqGCKjyMmJoagoCBJMK2IF\/NyJbgRHJWnIJvHI+2\/XHCFNj179swQxH5ZsapUwTQRLTIiyI+IiKA8mSrrS1j0frkcpUqNWqVELn85ERbNQyUUcJNgBgQElPkjsap3M\/GhVqM2CyplPPJKwOl1vqvgpvoIppx4US7yOVCiqAblQ+hRSEiIIZRHmypFMEVhFEFkRJgU8fHxCPJF1bc8mXqdH23htBUoFHLCnwYQ8DQcuUKBopoWSsFPdHQ0jx8\/rr6CKZp3YmMIDw3Ez+cBXvfuce\/ePby8HxL8XI5arUIeJ6u27ye4ERwJrgp\/h9b0Qy0jTqEiIVFH9BM\/vLwEB148ePwMhVaHWmnNeY8z6JFo+hChPNpUYcEU5IqERY3y6tWrBsKVSqWhYIaFhZUrU9bxschRaRKIvH8It1Zv8EarCRy5\/5wEjSiU1vQBly4vJsF89OiRFRfGkt9FqdEje3yOyR3\/Qe2m7enh0JtevfvQo30LOo\/4jLP+KqpzTVNwY\/WCqVChUcRw\/9pPuHTtRrcefXDo25OWbR2Zv+13ItRalFYs+KIy9+TJE0MQ+2XVmgoJpkksRXvlhQsXOHfunMGkEILp6+tb7naCsr6ERe5XKNFrYjm5eDhdW9rSuqUNg78\/Saw6AaWi5IJtkfxUUKRNgvngwYMyfyTW8j5KTSIy3+MMfv+vOC06hyIrGa02CW34RSbYvEEjl82ExOlQxVt3LedleApurFswFej0Gnz3f03z2h8xdv1V5Co9icla7h2aRdP\/\/AeDF54iWqMmvoLf68swquh5IZKBgYGGUKWCaS6WFy9e5NSpU4j\/og1GCKaPj4+hp7w81d6KglIZz4v2GcWzc4xp3hynpadxX+ZA497TufNchVpZ9sbiyshTReIQfEVFRXH\/\/v3qLZh+Jxha6y2G\/3gZDZkkapPIJJodLh1p4riYgBh1teRHcCu4ERwJrirCtaWeVagSUIdd41PbmnSavJvotHR0SgVyuZKExCiOLp3P0p3neK5UWm3TlRBJf39\/Q6gywTSJpajaCpH8\/fffOXPmTCHB9Pb2LnfDqqUIL0u8aq2egAOf8q93m7H6bippd9fQqkEdvjgUgE6trnZmuUkwRZtfWXCwpnsNNUw\/d4bV+xsOM3bgGfgIb29f7rmvoW+3fiw\/6YsqQW21hfVVWApurFcwFWj0agLOLqbhv9di+q\/eJKTpzLCONzS\/aRJUZueszxITIinaikWoEsE0iaUww4VYnj59mrNnzxYSTJVKhZeXl6FhtTyZetWHZfHr8ni0ygg2jGmJzeDlRCC2CBb2akRLl63EJWqrRY+gOU6CNzEu1tPTs5oL5u+4tPgvajawpaejA717O+DQtTXv\/LUln+7zRJmgIb4a9Naac2PaF9xY79hlBZrEeB4dnc0Hb7Rn6YWnZOhVhb4luSIehZXWjk0Ym5oLRZOh2DedL+3\/MrVhmsRS1CxFm6WoWQqxLE4w7969axiLWR0FU6FOJt57G53f+\/+p03UMc+fOYc7XcxnQ\/K\/8z4eOHAhSoFdVL7PcJJgeHh5l\/khK+zFZ+j5jDfMEQ2u\/ybClF4jPSUWr1pGij2TH1A682XQcV5\/FoVaVvTHf0nkvTfyCG2sWTHVeDbPxv1ox74Q\/KYlmlpYsDqU2kZTkJNSKOGRW2oZpai4UTYYWFUxzsTSZ4SaxLE4wxa+lENbqJ5jxJKTFcuyrAbxdsz0zFi9j6ZLFLF6ylB+WfIFt7fcYtuIyumStVZseRQuo4O\/58+fcuHHjDyGYQ5ecIy4jEZU8DnUy3N\/hQv2\/N2DFjXA0huFF1mcOFuWk6LHgRnAkuCp6zRqOlVo90Q\/20\/fDtxi1+jqarCSUBmGUo9bqeHRsGWMnf467jxKNlQ4vEiL58OFDQ7CYYL5KLIsTzFu3bhmGGlU7wVQlkfb8IqNb\/h27zw+hyIDszHQysnLITY1l69iGvN1hAlcj0khUVZ9CKTrfRGG8du2aVRbG0giCqYY5pNZbjFx5gyQgPSWV7OxsLvzQlw9aD+LEY1m1rWEKbgRH1tpRKleo0SuD2T6xPXXs3Dj7VEdWehpp6eno5Q+Za\/8v3u0+nTtRGtQK6xR90Vwo+ldEEPul+e7M73mlSW4ulsIMN7VZmtcuiwqmGP1\/8+bNcnfdm2ewSvflCrR6HZ5b3fjojYYsv\/QMrV6T18EjGr21PDnzPR\/955u4bbuDTl992jJFIRQzry5fvlzmj6RKOSjBlFNqk5A9Okb\/d2rQdOBsth7cyy8793Jg3df07NCMQUtOE61Qo7TSwvoqHAU31j47Ll6TiML3DNMHN6apwyds3L6XX\/f\/woyPu2Hbfgh77kWh1SittlNUiKQYjSBCpQumyTQQ3fCiF9zd3d0wfEgMISoaTp48mT8OUwjm9evXDbN9qlUNM6+z5\/LupXyz4gBPYjSozcb0KZQaFOE+bP9uEj\/suUaEUlttOhhMgimaU15VcK31usBfFvqAXcumMNFtHK4uLriI4DqWRTsvEK1ORRVffWr9RXEW3Fi7YIo8K9R6EuN82PLNp\/kcjP1iLbeeKdAnWPfEDiGSYjSCCJUumAIcmUxmGB4kRFPM5nlZEINBRZuluF9kRMz6Ec+Up52g6IdUlccymRx1QjKpyQnEy2WFG69lxmlhiakZJIsPQxyXUCOypmtCMMVU1fPnz1ebPL+AnwF\/JfqUDNLT0wuFFL348ao+fLzwbnFxBm6qzXRihYrElLQCDlKT0IjxyTLr\/sES2nTnzh1DKJdgioJUXBA1Q1MQEWs0mheCVqulaBD3JiQkcOXKFYNJrtPpDAIqzkvh9WEg+BNj\/ETzieBBWAESH6+PD3PsTVwIbgRHgivz69J+5fGk1+sRI3hEEPtlxbaGmO9tcnckfFgKBxqmyelirKWoNYpapWk6kXCqIWqOYuCnn5+fIYgxTWIerOiqF0EcnzhxwiCaokfK1GYg\/Te2nbwOHEQjt\/hlFU0pIn1x\/DryIaX54jdg4kJwIzgyHUtYvYhVRTER+nTp0iVDEPtlja+GEEQhhuZCaC6AQvBMBIrB6EKZBam3b99G9ISLsWNiOIRosxS9fMIUF2H\/\/v2GTInhRVKwDgyEOT579myJDyv9JgU3giOpvFi2vKxduxYRyoNzDZM5bjK\/i\/4XbZBFw8uqscK0EEFUdUWPuohL2qwHAdG+3KNHD+vJkJSTQggIbgRH0mZZBJYsWYII5dleOayouMbpV50TgmryXFSeTEnPWAYBMcbP0dHRMpFLsVYYAcGN4EjaLIvAsmXLEKE82ysFUyYT4w\/16HUq4krZKywJZnmosPwzkmBaHuOKpCAJZkXQK\/2zlhNMuZLEhFjunTjB0dP3idGVzhNJcYIZ4XmULXvOE5du9mLpcZzfs4Wjnkb3FmZXpF0LIPCCYL4Ef+3Ta2zfsp8AVYYFciFF+TIEigpmxO09LF+8gLlffcVXeWHO3OWc9FW9LArrP69\/zsnftnE1WPva8moZwRQ+7pI0hNzaSNd\/1Gbod8eJyUjMmzta8lir4gTz3Lxu\/KPhaLwSzHBK8GJ0w3\/Qbd45s5PSrqUQeEEwX4J\/yKHPqPmP1vzyWG+prEjxFoNAUcE8\/nkD\/vI3O77bto1teWH5F840rDOMAw8UxcRQDU7JrjCg1TtM3R\/y2jJb+YIpV6CWP+fG1uk0rv8+\/\/Nvb+Oy8jyydH25BfPKskHUs5vKQ\/MyqH\/IVLt6DFp2JQ+8FEIDfQ1Dk\/yDYilcv0kjMth4LTBSWQB2ZipKnRK1Iponj3zwC4okKbvgsrRXgMALgvkC\/sZ7w9y\/pkk9e34NSjacSNfF8PiRDz6P\/IiQpRRECOQmxeZde0xsUm7+tYwkNXE6LaqIAHx8fImQa0hI0JCYkk58mBh+5kdInJgNbrYlReMv0vHxwf9ZPMbYcklWy1HrdcifPTXkIUwp8pDD8ye++PgGEKNOM4sEUuKf4SuGuD0ORpNV6JJVHxQVTPeZ7WjWcR4x5rnOCuLztu\/S8avjJOad10b6G4f0PXpMpDrT7O6XlydtXKgRI78g5Ak5hmc0cdHEJeaZgFkpyGKjUScZ48tKURMdE0dqXuzKyEDjEMLgSPLRz8lCl6BEqY7nub8PPr4hefhnIwv1w8fnMaH3z+DSpymzj4WZ5bNqdytdMOXxapTPrrJoqhvz12xmWic7nBeetpxg\/ngDSMBr00Rad3TE2cmJ9nXaMmHtWdQGLvXc3jQVu649cXJyws7ekeW\/P0NQmRt9i0kjmtGu7xBG93di9OcbCSpcpquWDStOrWyC2YODoRmkxt9loUsPOg9wxmlgF5o3+Zh9fnGGt8yUP2CJa1fa93fCqX97urouxjvOWHyCD06lRe\/2DB\/giJPTcNYcu8zmGQ4MHPc58z53wsnJnibtJ3DA1ziSIiM+kLWf2dOznzPOzs506OTEj5eeARmcmd+fNvbOzJg0E6cB3bHp6cSGdduY5PYxg3u3xdbhC24pjQVd8+goE\/q3p7eTE4O6t2bQ1\/uINCmLFXMjslZUME\/OakeTdrMILJRvDZtG1aaey2Y0QNStrbj2b4eTszPO\/e3pPHIBXvEZkKvlTtHytO48+twcVL57cenXlb7OTgy2t6Fdrzl4xeg4\/FUfOn+yD1F8cv130\/ijv9Nv\/X1D6gF7XOk0fB5PU9N5cvw7+vfoaCiLPbvaMXXTbfTi1y1NwdrPm9KkzyDGD3TCacS3eCqSefjLl\/Tp1AUnJ1ec+veiWfOWfHcyvNBbVeVBpQumoRdcHo8uOYv0aA+mdbDBaeEpiwmm06p7oDlFn8Y92BVqhE5x\/zCrNx0jJjuTkONzaNmkF3sDjL920cdn0aLJME7FZID+PuNq\/TvNp\/5m8F5TlcBXt7TKJJgNenMqTI33xvHY9F9uKJyg58Iva9h9JRTSnrN5jC02ozdhlLx4No5qTye3\/YhWl5B9Y\/ngL+\/y\/S1TW1Uimz+uzduthuFlELAkfvq4GU0n7CUXHQc\/aU3b0RtQ54EqO\/o5DTtN52laAhcW9ub\/vO3IGYMVKuP7nv\/N\/9dkKo+FCZJ8m5HNmjBpVyAZiY+Y3qURg5dcw\/A7m3iPqR1bMXr1\/SLWinUy94Jgihqm3dw8B9bGPKf676V9rQZM++0J2YobDG\/zETPdTeZ5AquG2eCw6DbpxZWnzSdRZcfx85ju9J1z1hhheih7163jwhMt4fs\/p36bT3mUC7rzs+jQ5B3qf3HeUJn5bdoApm24RqTXbjp\/UJNZRyMNz6f67sS+UQvmnAgjm2TW9Plv3u4ym8C8qqj23kZ61mvOmrzvIOzoTBq815B5p\/5ogikm2asS0IZeZaqdZQVz8Kq7kHyDYY2b0H7IRM49TTTUHo2MxrF+pC0tx20jLjmFxMRE0nX3+cy2Fi6b\/UlXeeNqV49Zh19fFd+YT+v\/WybBrN+Lk2Fago\/Mo85HbZm69hhRJnNNvGrIPjrUb8P881GkJSWSmJRG5JlvaVWnG6cU8PygGy07TOC+0aoHVGwYa0vHOSfygfp9YWdsx25ARyohdy7zMFiBKuQKi8cOYpB9S2q+48LNJBVn5vWk04jVeaZpHBtcO9Jh1iFDTYi0IObad8Z1gxeye8to0LA\/h0KSSUlMJDE1hevLnWnafgo+Raz\/\/ExY0U5RwTw\/vz1v\/b0evUTtMS\/0aNeant8cRy4q8olheF69SaQmHa\/fFuPiNAi7uh\/RfdIxklNuMbJJceVJxf5Zw\/mgaQeWHPEhIc1ojgsYkoN207dpD3Y9k3Hr+0nMGOtCvxG\/okv15tNuw1l7ORjPzWOp1\/NbgvMfS+K3KTZ0dN2KMj2D1cMbMHDBpTxUUzkxqxvN+y8qEP2kQL4c0ZMvD\/+R2jDzHEpUpmBeXNSPuh2m8cjcPEp8xLQOdem3+DKQierpRb7s1QCbrn2wa9GASRsuo9NGsWxIQ\/7ZoB0OffvQp08f+vRzpFdXWxYcDSU91guXXk2Yc+L1\/WJZUZkrMSsvCGaCNxNt6zB4+bVCz0Wc+obGdbqyLyiJnAwdd\/bOxb55a+x7daFth57seawi7e5PtPiwJi27ORg56dOHvo696D14NJfiIEIIZt+pPNSZolaxYZwtnb87aTrBiW87YTv+JxJzMwk5vQCHLp3o0bULIz7ZwtlDX9Om4XhuJCj5fV5Peo5ZR7ThySjWjOqB\/ZwTRsFMfszsbp0Yv8mboN+\/4O23atPJwTEvT33p26cbg6cuxNe87Tw\/B9a1U1QwT89pR92mYzjy4AFiRUkRHgWEoc8Tq+xkGb\/M6YZd5550bOnEyv0nWT62B93cfiORLNRFytOE1adRpOSQrpdzdOHH2LQSeLej0+BPuBKTSE5WDAvHduLL306wxW0uS35ewfRB49m+ez3Orm7ciUnizvLRNBm6Oo8LgV8Sx+d0ofPo9ciSM1jt2pjBP17NA1bLjrGdsHXdlW85kODH7LFD+fJw8GsD3zImeSXXML3Wj6Remyn4mPfkpD1kSut6jFzvZQZeLmkpSdzf8xlN3nmT1b\/7sW1CN9q4\/UJcSipJSUmkpyp5cP0y9yISyY31YHT3xq+1Edks81a9+4JgpjxhdtdG9Ftk+sCN2Q8\/Potm9R05EW5q4he\/Z+kkq4NZOfB9att\/irfXBRxbtGPBhRgyUpJISkojRRbA+YuexGVD8K\/jadl7Mt5FBLPTtwU1TINgTt4JSQ8Z3+EDOnzjjjYlzdDZo720kLb1RnItQWUQTPtRa4gyZE8IZne6zT6GofJqJphx95bRuMkgDoWmkpqURFJKGsqnXpy98ZhqoJcvtmHObEdTu695me0kPzGbN+u046e7KlLThYqmsntUJzqN3Y2pIQTMytM\/\/i9zTpsaPSA7PRXVsytMbPp32rhtQZMD59d9hvOg4Xw8ayHuXg\/Y\/LUDXXs5MHPeFgSV91cPo06Pb3mS37GqZMOIOjRy24FW1DBdGjFomagAiS0F99ndaNZvMUYDHtD78+WIHn\/kGuYVJtu2ZuCCkxVqw0yPcmdQrTZM2FYgjsFHpmFbdyAno9JBfp+f1u7koYnp6MP0qt+YlXc0BB\/8nIYf2bDX39iGqbu9hsYfdGTtPS2objOyS31mHhUdBNJWEgIvCCYZ3N08kfq1xvB7eF5PWVYsqwY2puekfagyIezSPlb\/6pnfBnhn1WAad\/6CQF08650+pPXwtRhb0FJx\/7QX7\/acT0S2sQ2zWY8J3DcTzHUubbCbezw\/i8fn2tHGbTs5GUHM6NKU9nPz2tUyI1jQ\/13++z+GcDdNw+lvutN1+Kq8QhfJquFd6DzzaJ5g+jGzc3tGb\/AmI\/Eh45v\/nUGLrmLsHH\/G9z1a0ebTAwU1nPzUrW+naA3T\/cu2NGj7JQEvyarq8kI++KAbm\/yMHW1673U0+K9\/p9OkoyTq\/dhctDw1aMrKCyHcOriNHZdMMpzI1jHNaDd2u6EPQHF9PY1q1KDxp2vQZIDnxr7UqPERX231NvyQ6e5txu69d5h52DgjKc1vF20\/rM+0356STQLLhtej\/xKTSQ6qu5vp3aA2C84aJVN1eTF1\/1mHb9xN6b\/k5Sx42sI1zGt82tmOoYsr1ksuTO6wq7sY3bE1jk6il9SJTr3Hsue6sbcbXRhbZwygZdd+hmuOdp2Y+ONxokUlJ13B9bVj6ZDXS965Ux9mbPMy9ubF3sClV3O+lkzyV35iLwom5KZEc\/hbN7rb9TDg7tTHgSFTV+GfN8NA4XWQUX1s6WngrB\/du3zMz7cjDAKaGH6VxS6dad9P8Nmdxv1mcilvQHLgrxNp6ziNB2aCuXFCB7rNLzDJT87vRoeJP6Mng8izy2jUpIXx2xg8li+nDadN2zGceh7H2QV96e1iMsmjWefSi55fn8gTTH++7tkV1\/V3De8f67mTiQPa00vkt68d7VzXEqQ0N2teCdNru6GoYJ6e05EWHecQ9JIc5SQ9Z8cX\/Xi3hb2BuyEjJzL+Y3s6jttGfGoke78sUp5WnCI+UU\/wiR\/p0aUd\/QVGA+zpPXg6p0OMg+Ezoy4w9KP\/wP6b04hKZMT+KfzlzU785JVXk8lJIeiI6CXvwGAnJ3p168DYNdeNbaqZcfwwphlDlpuGCYru9hTub59Cl7Y2htESo3s60qrnAL4\/+foqOBYTzDi5HLksiieP\/QgMeU5cKV3\/Fzdw3cR5suwpfr6+BhdwT2KKtMRnaggJ8DNc8wsIw2xYn2F4SVTIY8M1\/7C4vBoEkJWGSi5Dm1KNBtyZwKji\/8UJpjELKUQFGbH19Qsmb4ROfu5SlWE8NnDmR0iUyQTIu5wsI8BP8PmYZ6JKkrdlJKmQKdQYLEXDuRz0qjjkuoIxXyk6OXEqvaFginGV8VF530bAc5LT0tCo4tGnZZGqU6BQ6fM4z0KvkiPXphjHaeZmoJXLUerzRwOSYsqv3xNkZq0KprxZ6\/+igpmiFasvas06QIvJeaaWkDzugqN0ZKUmIFPkPZP1svKUgzrqiaEsCd6iVGbT73Kz0MojiU8wnstO1RIVqyAps2CMrciFKirI8PzjkKh864OcLBKUMuITCrgw5jgbRXggvr5+hIbHo0nUoE02WovFvJHFT1lOMEXnj1yBSqNBLbwpl9K7uEkwY2NjLf7yUgKlR0As4SoKpbRZJwKCG8GRtFkWgQoJpli352XB5PqtLP+FSzfhhV349RNu4aTNehAQPA8YMMB6MiTlpBACghvBkbRZFoGVK1eW31uRcBxs8p5u8pouhi8Ip8HCYbBYLKiow2BzZ8FipTuxeJPwfylcuplWkzxw4IBhgapBgwYhBevAoFevXrz99tsSH1b6TQpuBEdSebFseWnUqBGLFy82LAUilgQpS6hhulmYAqYg2rpEECvYmYJYnEkEsaSFKZgvbSGWtzAtcSHuE8vxCm\/sYjkLKVgHBuKHrXPnzhIfVvpNCm4ER1J5sWx5mT59OkuXLiUzM5O0tLQyhRovM8dN58tijot7JZPcsuZERWKXTPKKoGf5ZyWT3PIYixQqZJKX1JEjV8SjNK32qIwv9eLspk6fmJhCflaqBg0plZci8PJe8pc+Il2oQgSK9pJXYdJ\/qqQq1OlTvGDKEB6L1IpYngUH8jggiJDnMjRqFQp5yb4wRXzFCWZ2Zjpp6RnkmI9OyM0hIz2N9Mz8aQMWIS4rIyvPVZhFoq82kRYvmNlkZpuTUvbXySWLrPy5xWV\/XnrCiMCLgplDZnZFgX0Jv9nZZL1AWg6JWhXxSjV6sznmxtxlk6hREh+vJMlsFFJ15K7yBVOhQiMP59DCwdRtbkfvLjZ82GUUW64+IUGtRP4K0SxOMG9tGE\/HAV\/zuNBc8sd8PaAj4zfcshDumdxYuYBPvjiS523HQslUk2iLCmZuSiQHVsxgg0fBdLmyvkpmtAcrF83D\/WlFC3ZZU\/7j3V9YMNO4vX0W8w77l\/tFX8pv+gMWOn\/OLx7GyaaGBDJ1XF47koatu+LQuxO1e03goJ9wIAdk6\/H4aSI9uvXEwaEnzhMWcjNWV20rIZUsmArUSSpurBnP2+835Kv9PqREPuD70W34a\/sZ3A6LQ62KL3FMZnGCeWlRXz5oPQFv80m9em8mtP6AvosKplIZGaqEv1kKft81lTo1\/p0OY\/cZ5sFWQqzVOoqigknSBcY0aMuqu+UfRKy5v4ruDQdzrvyaW60xrczMGwXTtFzLcxZ1ao7btgo4qSiG39TIO3w1pCX\/VqMha++ZVqjMInDnp\/yrVlMWX4ghMzmU1RPteKPrAmKy0wj+bRJN3+vI7gAdmZk6Ds3uTB2neQQXmXdSmVhYMq7KFUyFhmSdN990+5AWY7YRrU1Gn5pN9NnFtPzAjuU3Qg2mubyEQezFCWZpPK7nRlxhzvQpTJ48manTVnM72oyRGA+WzTFe+3z5Hp7luQ3LVYdy8PjP7NzxE99NmcyMRQeISdNx5YdhNGzTg37tm9Fz8n5JMMEw8kEUSsOW9oydc5yp88Y\/sen3BQdvG9ubQ86tY+qUyUyeMpV158wKa4I\/axdMN3AzZeo83L3lZCY+ZOGQdvzrjY\/oNXI5NyLM1x+x5Cf\/x4zbIJhRYrKHjkvbZ9Ly7X\/QoMNw1u1\/YPDvqfc5yJefTGby5CnM23WlwKFIThzHfv6OKZMFb9PZdCyIHKLZY8bvkTsxpKpv8YWjHe37DKDN+91YfcvUxxDNDw61sZl8NH8GXea99djUtmd3iJqn1w9w9FJA\/oyj+PPzqGc3iAsRFWvKeV0sVq5gyhUoZeF4XTvLnUfPkMWr0Senc\/un4dSq2ZGt9yPRqJVlrmGWJJiDV9yGDD8WO3dixIL9nDxxjO+GdcfebQ1h2ZAju8EsR1v6z\/yJY8eO8PXITthP2EqkaPqUezC8WQ3+3mUiv+w7xslLPiRkpRLqfYvHz2M5PH0QXcbtNfPe8rpoev3pFqphZqm4c\/g7Or1Xl5ELjvDouZagIwux79CH+fuOcWzffPp06M7846LGI2fv533oO2kVp92P8\/Psj+nY+zNuxoTz+ypXmr1nw6xN1wjTFJ0S9\/rfuTrlwCCYkcKJXSoh93bh3PAjuo9fjYdPNJr7uxnWyQ63lYc4dmwLLr3aM2b5dTE3mJsbxtFz0Gf8euoEh9dPp7PNYPY8eIbPmcV0FvzOP4Tf8wQyU57jecsHdfAZRrXqwZKrJpM8hYjHXoTKkvLN7Kf7xlP3PXsOPS+Y7oXjGD4AAB7pSURBVEp6Eorw+ywa3oG+3xykmkzRf+ETqFzBjBPzVxVodHq0WjVJKelEXlpPu9p\/ofOMvYQrNCjj5ZUqmE6rvUB5lHY1O7DsuskkAb1aQzoJnPzWkUZ9F5I\/B0J\/meEtO7HsWjw5wuN6wzcZvs7oSr8wOinsm9yLzpJgGmApJJjiTMJ5XJvYsdZbTNW\/g6tNUybsKfAi82zXFNrYf89zrTcTWrZl9AaT2y5I02lIzgb1\/TX0ajqUc0a364Xhl47KhEBhkzycRd3aMGmn8PMqZ+WQNnSZeaogvgfr6dRyNNcinvLTiB7YuG0tsKJSdOhSciHxAmOb2LHmTpEfssjjDGzUnaXXTIJZEK3YS\/PZRef6\/0vPeb\/nrxskzif67Me5tz0N2\/Vh5YkwRBLVcat0wTT0nMsVJCSlEnl5A47tatFq9Fr8IlUkvKL98mW95CXVMAct9xB+UdjxhRN1\/vEXnGevYeO23RhXE43lhyHNqGPvxop1a1mzZg3r1s+jx4f\/waDl3qTEPcC1RxO+dje6mypMoI69k3tLgpkHSlHBTJOdYGQjW5bfzoTAbbSqXZ8hs5ezbs0a1qxZx49fOPJ+zWYcCFRzdcsc2vyzBh3GLmL95u1cfWL0biO7voTujQfxGte0Kkx5NT4yCqbpOw7g204tGb\/tKWhvMdKmNh3GzGX9WsHNGtYvnUzjf\/yVb08\/J+DsVno1+RuN+0xj5YbNnPAUJjlky48xopEtyy4XWZY37BiDGhcvmOpHe3DuUp\/2U37heb63\/DxQc3PJzs4h\/MR3NH7Tjg13q+evpAUEU4FGn8T9fTNpX+8vtPtsB+HKFBI1CmQltF2ahigV14Z5aVE\/6th9gl+BsxpI9uMTuzr0W3Qx\/zP3c9\/MD0sWMrL9OzToNpprviGsGtGa2l3GsGDJIhYuXMjipcv56ectXA\/WkR1zizH2L3MgLAlmPrBF2zBFTcJcMAO20qp2PQZ8Op\/FixaycOEifli1nl8OHCc0r2ky9vYhVi1bzGdDbPioVge23I0mxmM1PZpIgmmOc3n3ixNMNyGYGg9G2tbCdtgMliwWZWARS35czeYdu\/CONnrpSgu9xpYfl\/LNtMHUfesjZhy8h1p+CdcmpRfM0DML6Nrof+g89ziqkmqPCXdxsf0n\/VffyfM0Vd43fj3PVbpgKrV6np7bQI\/mbzFixTnkSZCTloRer0NVChdvxQlm1Ol5NK\/jxJGogh7ZnNijONVtzrzTUZCZglpnZjrIjmBf83+ZfzqY09\/2o3H\/pWZOYKNYN2cuv3ipIf62JJil\/O5eqGHGHuHjerasEa0ZaR4Ma9GQqQeNC0GIKHMf\/saU2VsISspApzEf3hDMp83+lwErbxB8Yy32jZ05m99eUsrMSLe9gEBhwXzMV+2aM+kXYZLHsrh\/c7p\/fa7gGc1tZk9fwuWIRJJ0OgqGRmawbWhtmg5ZQ3DMTVwa2bLas4iPu2JqmLp7u3Fs8zbjt97L79wxJpbKzU3TmPDt\/oJ+gOjfGdD4fcbvfmxcbK4gV9Vir1IFU65MQP\/8Op+0+1\/+2mIE2w+f5dTxwwhnGoeOnMXnWQyKV4hmcYJJTihrhvWlQ7\/pHLt40TBndvF4ewaMXs0zYT9EXWXK4IF8vum44Zr7mml07jqCY+HZJAcexNWmFh\/P32O4tnHGQOrZfcZNeRbIrzKgdU2mFbswvJbto9rTfOh2aRxmMTXMDOUVJraoz7AlpwiK0XJ19QjsbB1YcVzws4OP27VjwOKLpKSGsnKCM8PmbTXgf3n\/Evp36M7KaxHEPdpBn3qtmLPzLlF5PhSrRamxwkwWFswwVjg0xW7ceu4HxvH05Hf0btGc6VvOcvHiKb4a3Jk2ozejTVJxeskE+rh9zylRrn7fyYQe7Zi42QON3otpreozbLE7QdFmIxhC9tO9Zmu+vZhn\/qc+Zk6Xv\/G3tm4cuXyLG1eM5fPSFS9ikzIJPbkI+z4DWXvAeH79F04MHL2KwLz1zK0QyhKzVKmCqVDpkPtf5oeZoxk5ahQjhn3M0KFDDWH4mDm4P4xE+YppksUKpniFHDnHlkw2eDFycXFh8pJjyM3GO0ff3M6kcS7G665fcsKvYHBfVthFvv0s79oXK\/GIMpoiueonbF81nyMPi3Mll8KdfWtZseuOccGsEmH8418sWsMUXvD9Ti5h3NjP2HvDWLP0P740n59p267nO4dNCT7LN5\/m4e8ygc1ng4zmWKaSMz9PZ5zrfK6E5btX\/+ODaYE3LCyYEHd3J+PHjWPZTi9DTU59ZyeTTeVj8a9EmdoY433Z+J1bHm+ufL\/lcl4HUCa+J5cwfuxn7LkWnt8DjvIhm+av4kxw3sB0pS+bFkxiwoSJjB\/nms\/\/uMlL8Igx1l3VD\/Yxa6KRf7f5mwmsxlRXqmDGyWTEKVTok4UXj1RSUwtCSkoi6lf0kL+s08cC35cUZRkReFEwyxiBdLtFESgqmBZN7E8ceYUEU3iwKckjkfA+9KogHAWbB51OZ3AgLBwJS5v1ICBq\/gMHDrSeDEk5KYSA4EZwJG2WRWD16tXldyAs\/F2a+7o093EZEhKCCE+fPiU4ONgQnjx5QlBQkCEEBgYiHBCLIHz4CUfEIojz7u7uHD16NN+hsMmxsPT\/7GvDZNeuXdjY2Ly29CXuS+ZecCM4knAqGaeK4uPq6mrwhyl8YSYmJpYp1BDiZxI8Pz\/jAmQ+Pj48fPjQsHD8\/fv3DV7X7969a\/C87unpya1bt7h58yY3btxAeF+\/evUqV65c4dKlS4ZOAfH\/4MGDTJs2DZE5KVgHBs7Ozrz33nsSH1b6TQpuBEdSebFseWnVqpXB47qwgMW6Y2UJNYqa4y8zv81N7qL7wowwD3q93rBkhfgvbdaDgGgqEcsfSJt1IiC4ERxJm2URWLt2bflNctNg88r8L8RTrO8jORC2LPFljV3q9CkrYlV7v9TpUzV4V6jT56VCKYtDpUsmPT3dEBJ1KuSiB72cM32qBgoplZIQkASzJHRe\/zVJMKuGg0oXTDH9Ua1P4cm1HSycO4evvl7A\/qtBaJISiZe\/WjSLq2HGPDzPgRMehT2cZCjxOHGA8w9NbqYqETB9CIe2rmDp0mWs2nmGSPMpmZWYTHWK6gXBzMkkJuQOD2OKzAQpy0ulawkK8CIkfy5dDkFXdrHih6UsXb6BUwHSSInSwllUMPVRXtwJrUCveQn8pkbe5sTZG8TnTxFKxs99H6uXLzN0iIhFwtacfECqaZx0xnMObFlpuLZix+lqXZ4qXTCVmkT8fl\/LoOaNcPrye1bNcTMs\/\/ndoQfEKbWvXKaiOME8P687bzYag5fZhAMSvBjT6E26zztf2m+qdPdpAlgztjH\/tBvBiuXf42hTh9YTtxP5J29SLSqYufq7fNW3K99fLr+o6f12MazXUA4anBzl4rPvU+o1qs+YuStY7tqef2s9jD1eitLx9ie\/q7BgxrPdtQsum33KjcpL+c2IZNWY+tRoOJ6HpjIhO8eA2vXoMeV7VqxYYQgbfvfBsFJFaii7Vy\/Abe5SVqxYxsjurWg25iee6kqacF7ubFv8wcoVTIWaRGUgq8e0xXHyDiIMlQ8duz9ty7v95vI4Uo1aqSjRNC9OMEv0VrTsSh5ImcRFG5fyjYzRFpmnmo0qNsKwxG+U0syxcHYGialJJOvVxISHERkj5\/aGMfz1n535Ldj485ju\/RNtP+zAypsmD9MW58QqEygkmDlpRHtvpve7TZi11xeVPq+qka4lMjyMsPBItPm1D+PraBRRBvwjIhWki7KSm4zXvs9p\/X53tnrK0MrO0O9fb9Hjx5t57x\/JgkFtsJkoOXAuzQdhFMxIg49LneISE5rWw\/m7k8hM33tuCrHPxTLXEcgTC3wyiLhTdHGEiyWwI2JIMLhkyCT6\/qZ8fpUmfgHfA1\/x3n\/W4D86fENA3mwh3ZWltGo9Hs8XNDCHh79MwabbbPLdST8\/TJ9W\/fn5vuStiLg4OfK4aMJCnvI8Nh6tICZTxvZJHWg0YjEBUWrU8ZUsmD8KR6hJ+O+ejk2HXvTr1w\/beh2Zsf0axumqqTzaM5suXbsZrrXv7cymazGGqXm50Z586maHvdMwRvTpx\/gZP7Jx+Qy+WHSswD+g4iJDan\/AlANPSvPd\/mHvKSSYqYGsmdCDd\/\/nDRq0G8WWS9Fka8LZMLUXtn360a+PLb2mriVQI6agZiG7uhqH7t0N+HdvbcPwr38jLO4mM3s25c3\/eYc29nM5fHorX0yewSUzN4vuU9vSsO9STE7L\/rDgVsKLGQQzSvyoqznx43jq\/v2vvN\/EnnmbPclNj+fM4hG06epIv372dBw6nXPBxuqh7slRJjl1p2e\/fjh2taGb8zJ8FQFsmto7n9+fz4cYcpgV7cHno9xwHm5PO+fPeZjXKe+\/ZxwdnFzZfvi0YQz1Nf844xvlRvDD4O4MWHKKp488OOl+knMefigTs8jMtuzihZUAabFRVG4N09CpIydepSFBJcP38n5muTpQv6UD225Fk6DTvHK53bLWMJ1W3QXtGfo3t2dboPEdw65sY\/7y34jKzuL52YXYNOnKpntGdoP2TqNZCxcuKLIQZv3YWjVoOP4XVMbp5UVAyuTORife+6g7h4JM9keRW\/4kh4UEU\/gMVpxkVON2\/HhD1Njl7JzUidbOywkXFfOccH50akv3GedJzw7giy7tmXFQeM6BxKDTLJq\/lofaLJR3V9KjyWCKc0eaFnycAU3fYshSDyrQSvonYQcKm+RP+K5zK8Zv8jN4YPdcM5LG7cdxxeAVKolTX\/elueMq4tNU7JzQE8fZJ404aXxYv2Ah7v46chPPMUbwe83U5KLh6Fwn3JZ4cv\/odGwdJuFtKFLpHPusE7Xqd2LUxKlMnDiRIWPcWHs5AFKeMs+hFe2HuDLzk+lMmjiRoQMHMnnjeTRmztirE0kWEMw44uQKVIpYfC8d4Ic13zLWeQhjp+\/AL0ZOfCXXMAcLwUy8wqC6Teju9hW3ZaaWZkGDnI1j2tFq\/C9ocyFHrNOb7sv09vUZvz2IdLU3ru3q8uXBZ8VyFnHyWz6q+R4uOx4Yzchi7\/pznCwqmOlx7gYHwj\/eyoC4I3Rp2JbvLwszK8fQHCK\/uIA2TZy4GRHE944dad5rKEf8zJf9hKhrSw0OhI8btbQASIUnY7u+yxsDv+epqbwWXJX2ikGgsGAGMk84EN7yBDIfM6VjM4auuyvaQcjJgZyIw\/RtaMPPtwM5OGs4H7buzcaLoflr8ojo0\/P8nf5wxUjA84srGDBmDsGZID86iVYO0\/A1dIZmEHLzLIevhebnSn9pAY3sxnLJ5zE\/OL9BjVr9Ofs8z16PPIx9m44sPl\/gCjD\/wWqwU+mCmb9EhVqJ6ADKIZegXZ\/y7pvN+OHSs3ItgnZxcX\/qdpjGI\/PylviIaR3q0n+JaMNMJ+bhESa0e5eWXRzo2q41M3fdIyUxmmVDGvLPhu3p6+iAg4MDDv370tWmMbN\/CyYt1guXXk2Zc6JgaQsDZ7lp3N0ynobNWzJ9r79UwynGvZvJgfCK21ngs5FmH9SkVfe+RowdHHB06ErHnk6cDstGF+XNwkENaWTbkx6d2zHim13EpGUhv7nsBY\/rqf7HGNf9fZq6beCxuthqfzUoVlWfxcKCafS47rY9BOKvMqxtTerY2uMovn\/BTb9e2NnasOGGlhTVc3bN7EOTph3o1aMzfVznck+TRlb8SUY1suWHGymgu4mbTXsm\/XyDiPAQzq5wplGn4Zz0lxf0hJu\/8rPDdGzRgG9\/vcb3jo3oOOdkQRlKfsSkzm\/Tc+n1QgJt\/rg171euYBoWQXvG3ctn8PR5hkwRT7w6Fe3tn2jx0dtM2fsYjVpdollenEl+Z80w6radiq95W3XaI6a2rcuwNXcK8M1ORhUv5\/KGsTSsWZP15x6zZXwXWo\/bQphwKyeXo1JG88DjGg8ik8iN9WB096Ie11O4styB2vUbMetgno1fkMKfdq9oDdMkmD96pEPUfjo2tOXb0yGoFXLkciXKiMdcvnqX2PzOnyy0SgW+Z1fQ+a3\/ZdxOb8I8NtCr6SCO5dUw9Y9+ZXCzv9Nm6kaemfXN\/WlBL8OLFyeY40QNM82HiR2b47zyKiqV4EaBNi6Um1euE6gqaEdMVMcT4XOCUfXeoOPnuwiPvcn4ZrYsv5UGIccYO7AH\/QcNZkD\/\/nRt+T5\/fetD+k9dT0ByMmGP7hESW0BYrv8u2jZsyrorvvzs2pUOnx0g\/2qKD24dajNwrackmHEKNUnaAJYO+IimLpuIMaCUwtWlH9O41TAOPYwxrEte1mV2U58dou8HNny2v2Bh+sizM2lXy4HDz1Ih3pddO47y1FQ4493pXbceP3oo8d8zmbp1umAy+zJ8t9GmTidWeWpA5cmobg2ZddS0eFcW4e4LsGnZho33TQ4Dy\/DV\/oFvLSqYqTGHca7dltVewtSKYn7vd7EdtyN\/4asrXw\/kg96LCNbFcnLPPm4YlukUAD1lht37jNlyj9CbK+nawImLoi0s0ZdZverSZ\/4JzHzn\/4ERrdxXKyyYfsxq24SJ24WZnMqRGe2p0\/ETAvMq7LEHvuSDZqO5Fh6Pl\/tvHL5rcnmfwU7XZrQbt4MIxVVG1WvLas8X2Qj+bRwtek\/Bx2CSq9k4rC6tpuzPX3IibN9k2veYQ1BGCk8PTadxw6GcyRsunRW0i8HdRrHPv3q2tVRuDTNOTrxGSfDdM8x260X\/AUMZPrIvnfuM5OfTgWg16nKNw4Q0Atw34GzbBqeRIxk5ciRdew5n42l\/Y+HSPGHNpN606ulsuObUpROj5+01rj+eEsXvC4fQvruj4Zp95x64rbqGPhdyY68xomsDZpoEMzWSVcM+4L\/+2YphLmMZlZfWyJGfccg7r+evcr\/zahNbUcHMTg1l3ejWNOs+jl3XY1EGnGfu0PZ0chb89KFRjykc89NAjoJTi11p3aWXAf+Rjl3oP3YRd+OSSIm9xic9GtJ50Pf8snIUb77xBrb9XHEdPcp478iRfLPhDNVzAErVUltYMHX8\/q0jH7Xqw+LtXiTKHrBlSjfa9h7OyJFDadlxMD+eEu32Kfj9+h2dOtkxVHzrQx3o2Xcih\/3lZGRGsmFMa5p1G8euK6YKhfGdAva60rznJLzzxkWrgm+x6PP+DP3YWDbHT\/+GM4FRRqfD2Upub52P45AhBk4HDh3O2tOPSDbvaqhaqCqUWiULZhwyWRzqhGRkgR6cOnGMY8dOcMk7GKVGi1IeV+IYTDF1sjiT3PSGmmfe3Lxxw+DpyOtpgUd1w\/VUGd6eRi9INz19MYxoMT1IMkEPPAzP3X4UVlCDyUgiOjyEuIS8LrvsVOIiAvH1uc+tm8Z0hFelGzfuEq76c0\/3KSqYAto0zTO8PO8SGmc0uLI1z\/A04HaLRzKzGnqunqCHtwz43\/C4R5TOZArmool5zB0PH0LCQvAP9MUrj0Mj7jd4EBhdwFc+n9JOUQQKCybkpsh4cM+TR0\/zfm7S5Xh7im\/5JndDzCcDZBLz5J6xXN28RVB0QUeBid8QWeERImnaGEIjYkk10Si6+tRPuJ1XNv1jCuIw5jONJw9vG\/j39H+e74m\/6DtUh+NKF0zTfPF4lQ7hcUiEBI3qlTVL03MlCWZ1APSPmsfiBPOP+q7V8b2KCmZ1fIfqkOcKCWZR925Fj1\/m7k2cL+rmzXSckJAgeVy3wi9HrVbTv39\/K8yZlCWBgOBGcCRtlkVg1apVhjnx5UmlhvCObvKW7uvry6NHjwo5D\/by8uJVzoMvX76c7zz4\/PnzBl+YwoHwhAkTGD58uBSsBANRIGvWrCnxYSV8FC0bghvBUdHz0nHlakizZs1YtGgRwoFwdHR0mUKNyMhIhKkmlqooulxFWFgY5ktWhIaG5i9ZIZatMC1dIZatMF+6Qpw\/deqUwSem8M4uBevAwMPDw1Dzl\/iwDj6K8iAqG4Kjouel48rlS1TwhEZlZGSQkpJSplBDjGs0haLm+MuOSzLTxTXTImiSeVGeSr9lnxHNJtJmnQhI3FQNL0Iky+vZvoapo6bE\/3krS8pL0UMu4pE6faqG+LKmkpmZibAopM06ERDcCI6kzbIImPpaypNKKQRTYVhmVyGXIRwLlyisedclwSwPFZZ\/RhJMy2NckRQkwawIeqV\/1oKCKUerTyHo7HL6OQ5lz+0wNFplidMipRpm6Ymr6jslwaxqxMuWniSYZcOrvHdbTDAVWi2J4Tf4ouNb1PjPLuy4HYI2QSUJZnmZes3PSYL5mgl4RfKSYL4CoEq6bBnBlCvR6+I4u\/kTGrz5Dv9q3oftHqGSYFYSaa8jGkkwXwfqpU9TEszSY1WROy0imCqtjkiPnYzpO4F5P86me9eObLgqCWZFiHrdz0qC+boZKDl9STBLxqeyrlayYMqQK7Ro5T4scemM25qbPL24EjsbO0kwK4ux1xSPJJivCfhSJisJZimBquBtlSuYwteeVs7lNdPpN2UtobmQcHs1He0684u3nNTkkn1hSp0+FWTTgo9LgmlBcCshakkwKwHEUkRRqYKpUCeiDTrG0Ib\/pFHnj\/nky5mMG9iemu\/UxH7UAi4GxqCMjy+x40caVlQK1l7DLZJgvgbQy5CkJJhlAKsCt1aqYMrjVcSF+nLu+G62b9nIxs3b+WH6YGrXqsuYb3\/hfriMeEXZV42swPtJj1YSApJgVhKQFopGEkwLAVsk2koVzDiZjDiFioQk4xxL4eA59uIimjdtxaY7saRIJnkR+KvPoSSY1s2VJJhVw0\/lCmaR2TzxmkTCPPYyY\/qXHL8fgUpTsjkutWFWDenlSUUSzPKgVnXPSIJZNVhbVDBFjVMer0GfqEcdLzd4Y3\/V9EipDbNqiC9rKpJglhWxqr1fEsyqwbtCgmnyVGT6X5KHIvNrJXksMnkrio2NrRoEpFRKhUB2djZRUVGlule6qeoRENwIjqTNsgiICp0I5dny\/WG+yiem8IVpCiEhIQZ\/ciZ\/mMHBwQZ\/mCafmOK6u7s74eHhpKamlsnfXFn900n3l96fn1hqRHAiYVZ6zKoSK8GN4Kgq0\/wzpiWTyRChPO9eJo\/rt2\/fNjg3vXnTuFDZtWvXuHr1KiaP6xcuXDA4qBWOUPft24efnx+illlWr8bS\/WXzAl1avEQNRvzIlfZ+6T7L8PAyXAU3gqOXXZfOVw4fJqfo5cGzhrmZXdx+Saa3uGZqDzD\/L0xyIZ5CxaXNehCQTHLr4aK4nEgmeXGoVP65Cpnkr+rAKc91qdOn8kmujBilTp\/KQNFycUidPpbD1jxmU+XO\/Fxp91\/qQFgmi0eXlEJaWlp+SNVrSpzhYxJXSTBLC3\/V3icJZtXiXdbUJMEsK2Llu98CgqkgXh3B7cO7WL18GUuWLDEsS7nq4FWexyqIV8hL9LwuCWb5iLT0U5JgWhrhisUvCWbF8Cvt05UumHKlDk3QIRxr1cJmyBRmzZrJFzNmMHf7WSJiJMEsLTHWdp8kmNbGSOH8SIJZGA9LHVW6YCp1KYQc\/YamTYZyLDojL9+5ZCRJJrmlSKyKeCXBrAqUy5+GJJjlx64sT1a6YKr1KVzfMJI2jiP5eb877ieOc\/5uEGqtHqXi1QuhSSZ5Weirunslwaw6rMuTkiSY5UGt7M9UsmAqSUiLZMcEWz6o1RpH55GMGOFM7yEurDh6D5VSieIVy+1Kgll2EqviCUkwqwLl8qchCWb5sSvLk5UsmApU2giu79\/G6r3XUCamk0M2T\/Z9Rp1Wg\/n1XiQaVckrR0qCWRb6qu5eSTCrDuvypCQJZnlQK\/szlSyYMmJl8SRl5pKbkYgiToZclYj+7lba1HuPSbv90KhL9rouCWbZSayKJyTBrAqUy5+GJJjlx64sT1auYMoVxMvCeXj7Og8DIohTxBOvSUJ5fT0tan3AZwf8JcEsCztWdK8kmFZERjFZkQSzGFAscKpyBVOhIUnjz5IBtWjlth15qjHHD7aMpaXNOE4Hy1Cr4qVxmBYg0tJRSoJpaYQrFr8kmBXDr7RPV65gxslRapQEXD\/MJy49GfLxaMaNG8kotylsP\/8YRbxK6vQpLTNWdp8kmFZGSJHsSIJZBBALHVayYMYhk8nR6FOI9r3Ab3t2s3v3Hs7eeYI6IQmlXFZi7VJMj5TaMC3EdAWjlQSzggBa+HFJMC0McF70lS6YpjnhSk0CSUlJhpCgVSGPe7VYSoJZNaSXJxVJMMuDWtU9Iwlm1WBdIcEs6tLtZe7cTIkU\/S9qk0WDcIIquXerGvLLkkpOTo7kcb0sgFXxvcK9m+BI2iyLgFqtRoTybDWCgoIICAjA39+fx48f4+vri4+PDw8fPuTBgwd4e3vj5eXF3bt3uXPnDp6engYnwh4eHghHwtevXzc4Eb5y5Uq+I+FLly7x66+\/GuITNU7hRFgKrx8D4TBVOKmVuHj9XBTHgcm5c3HXpHOVx1lYWBgilAfTGmJpiqLLU5giNHkmNl+awrQ8hViWoujSFEJ8AwMDDefFEhUiHuEGPjk5WQpWgIFpiQqJD+v8Hk1LVEj8WJYf0xIV5cH5\/wGU9iygomzykQAAAABJRU5ErkJggg==\" alt=\"\"><\/p>\n<p>To work with excel workbook in Python we have to add the <b>import openpyxl<\/b> package to our code. First of all we have to load the excel workbook with the help of the <b>load_workbook<\/b> method. The path of the excel workbook shall be passed as argument to the method. The load_workbook method is obtained from the openpyxl package.<\/p>\n<p><b>book = openpyxl.load_workbook(<\/b><b>&#8220;C:\\Work\\PythonExcel.xlsx&#8221;)<\/b><\/p>\n<p><b> <\/b><\/p>\n<p>Thus the <b>book <\/b>object has the location of the workbook. Next we shall need to know which sheet is active currently. We shall apply the <b>active<\/b> method on the book object and store it in the object variable named sheet.<\/p>\n<p><b>sheet = book.active<\/b><\/p>\n<p>Next to pinpoint to a cell in the sheet we shall take the help of the <b>cell <\/b>method. The row and column numbers shall be passed as arguments to the method.<\/p>\n<p><b>cell = sheet.cell (row = 2, column = 1)<\/b><\/p>\n<p>Here we are referring to a cell in the second row appearing in the first column. Finally to obtain the value out of that cell, we shall apply the <b>value<\/b> method on the cell object.<\/p>\n<h5>Code Implementation to perform read operation<\/h5>\n<p style=\"\"><b>import openpyxl<\/b><\/p>\n<p style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b># load the workbook with load_workbook method<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; book = openpyxl.load_workbook(<\/b><b>&#8220;C:\\Work\\PythonExcel.xlsx&#8221;)<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # to get active worksheet<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet = book.active<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # to pinpoint a cell at 2nd row and first column<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell = sheet.cell(row = 2, column = 1)<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # to obtain the cell value<\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print(cell.value)<\/b><\/p>\n<p>Now we shall discuss how to perform write operations. We have to access the cell on which we want to perform the write operation then set the value on to it.<\/p>\n<p><b>sheet.cell (row = 1, column = 4).value = &#8220;Email&#8221;, <\/b>here we are setting the value <b>Email <\/b>in the cell appearing at the first row and fourth column.<\/p>\n<p><b> <\/b><\/p>\n<h5>Code Implementation to perform write operation<\/h5>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; import openpyxl<\/b><\/p>\n<p style=\"\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b># load the workbook with load_workbook method<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; book = openpyxl.load_workbook(<\/b><b>&#8220;C:\\Work\\PythonExcel.xlsx&#8221;)<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # to get active worksheet<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet = book.active<\/b><\/p>\n<p style=\"\"><b> <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # set value with value method at 2nd row and 4th column<\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/b><\/p>\n<p style=\"\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.cell (row = 1, column = 4).value = &#8220;Email&#8221;<\/b><\/p>\n<p>To get the maximum number of occupied rows in the active worksheet, we shall apply the <b>max_row<\/b> method on the active worksheet object. To get the maximum number of occupied columns in the active worksheet, we shall apply the <b>max_column<\/b> method on the active worksheet object.<\/p>\n<p><b>rows = sheet.max_row<\/b><\/p>\n<p><b>columns = sheet.max_column<\/b><\/p>\n<p><strong>Conclusion: <\/strong>Thus we have discussed how to interact with excel &#8211; read\/write operations in Python. For more details, you can refer to the link:<\/p>\n<p><a href=\"https:\/\/courses.rahulshettyacademy.com\/courses\/learn-selenium-automation-in-easy-python-language\/lectures\/13248589\" style=\"outline: none;\">https:\/\/courses.rahulshettyacademy.com\/courses\/learn-selenium-automation-in-easy-python-language\/lectures\/13248589<\/a><\/p>\n<p>In the next section, we shall discuss how to obtain values from an excel in Python.<\/p>\n<h3><b>Build utility to retrieve values from sheet<\/b><\/h3>\n<p>To obtain all the data from the active worksheet, we have to iterate the rows from <b>1 to the sheet.max_row<\/b> with the help of for loop. In the inner for loop, we have to iterate from <b>1 to the sheet.max_column<\/b>. In this way, each of the occupied rows and columns get scanned.<\/p>\n<h5>Code Implementation to get all values in the excel<\/h5>\n<p><b><span style=\"color: rgb(255, 255, 255);\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import openpyxl<\/span><\/b><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b># load the workbook with load_workbook method<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; book = openpyxl.load_workbook(<\/b><b>&#8220;C:\\Work\\PythonExcel.xlsx&#8221;)<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # to get active worksheet<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet = book.active<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # to iterate through the rows<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for i in range ( 1, sheet.max_row + 1):<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;# to iterate through the columns<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;for j in range ( 1, s.max_column + 1):<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # to get the cell data and print<\/b><\/span><\/p>\n<p><span style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><b><span style=\"color: rgb(255, 255, 255);\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print (sheet.cell (row=i, column=j). value)<\/span> <\/b><\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>Thus we have discussed how to obtain values from an excel in Python. For more details, you can refer to the links:<\/p>\n<p><a href=\"https:\/\/courses.rahulshettyacademy.com\/courses\/learn-selenium-automation-in-easy-python-language\/lectures\/13248592\" style=\"outline: none;\">https:\/\/courses.rahulshettyacademy.com\/courses\/learn-selenium-automation-in-easy-python-language\/lectures\/13248592<\/a><\/p>\n<p><a href=\"https:\/\/courses.rahulshettyacademy.com\/courses\/learn-selenium-automation-in-easy-python-language\/lectures\/13248643\" style=\"outline: none;\">https:\/\/courses.rahulshettyacademy.com\/courses\/learn-selenium-automation-in-easy-python-language\/lectures\/13248643<\/a><\/p>\n<p>In the next post, we shall discuss the Pytest framework.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction to Excel Data Driven Testing To interact with excel in Python is a straightforward process. We have to use the openpyxl library in Python which helps to read\/write in excel. This package is not available by default in the installed Python packages. We have to download by running the command pip install openpyxl from [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":874,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-527","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python-automation","post-wrapper","thrv_wrapper"],"_links":{"self":[{"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/527","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=527"}],"version-history":[{"count":11,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/527\/revisions"}],"predecessor-version":[{"id":932,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/527\/revisions\/932"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/media\/874"}],"wp:attachment":[{"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}