{"id":527,"date":"2021-06-06T08:48:52","date_gmt":"2021-06-06T08:48:52","guid":{"rendered":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/2021\/06\/06\/how-to-read-write-data-from-excel-for-selenium-datadriven-tests-in-python\/"},"modified":"2021-06-06T08:48:52","modified_gmt":"2021-06-06T08:48:52","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":"<p><html><body><\/p>\n<section class=\"tcb-post-content tcb-shortcode thrv_wrapper\" data-css=\"tve-u-16ec5d248bb\">\n<div class=\"tve_flt tcb-style-wrap\" id=\"tve_flt\">\n<div class=\"tve_shortcode_editor tar-main-content\" data-post-id=\"527\" id=\"tve_editor\">\n<div class=\"thrv_wrapper thrv_text_element\">\n<h3 class=\"\" 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<div class=\"code-block code-block-2\" style=\"margin: 8px auto; text-align: center; display: block; clear: both;\">\n<p><!-- horizontal responsive 2 --><br \/>\n<ins class=\"adsbygoogle\" data-ad-client=\"ca-pub-3231318496783163\" data-ad-format=\"auto\" data-ad-slot=\"2788468763\" data-full-width-responsive=\"true\" style=\"display:block\"><\/ins>\n<\/div>\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 class=\"tve-froala\" 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 class=\"\"><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 alt=\"\" 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==\"\/><\/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 class=\"\">Code Implementation to perform read operation<\/h5>\n<\/div>\n<div class=\"thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad\">\n<div class=\"tve-content-box-background\" style=\"background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)) !important; background-size: auto !important; background-position: 50% 50% !important; background-attachment: scroll !important; background-repeat: no-repeat !important; --background-image:linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5))  !important; --background-size:auto auto  !important; --background-position:50% 50%  !important; --background-attachment:scroll  !important; --background-repeat:no-repeat  !important;\"><\/div>\n<div class=\"tve-cb\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-179dccc1837\" style=\"\">\n<p data-css=\"tve-u-179dccc4958\" style=\"\"><b>import openpyxl<\/b><\/p>\n<p data-css=\"tve-u-179dccc495b\" style=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <b># load the workbook with load_workbook method<\/b><\/p>\n<p data-css=\"tve-u-179dccc495c\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccc495e\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 book = openpyxl.load_workbook(<\/b><b>&#8220;C:\\Work\\PythonExcel.xlsx&#8221;)<\/b><\/p>\n<p data-css=\"tve-u-179dccc495f\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccc4960\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # to get active worksheet<\/b><\/p>\n<p data-css=\"tve-u-179dccc4962\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccc4963\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sheet = book.active<\/b><\/p>\n<p data-css=\"tve-u-179dccc4964\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccc4966\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # to pinpoint a cell at 2nd row and first column<\/b><\/p>\n<p data-css=\"tve-u-179dccc4967\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccc4969\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 cell = sheet.cell(row = 2, column = 1)<\/b><\/p>\n<p data-css=\"tve-u-179dccc496a\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccc496b\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # to obtain the cell value<\/b><\/p>\n<p data-css=\"tve-u-179dccc496c\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/b><\/p>\n<p data-css=\"tve-u-179dccc496e\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print(cell.value)<\/b><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\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 class=\"\">Code Implementation to perform write operation<\/h5>\n<\/div>\n<div class=\"thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad\">\n<div class=\"tve-content-box-background\" style=\"background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)) !important; background-size: auto !important; background-position: 50% 50% !important; background-attachment: scroll !important; background-repeat: no-repeat !important; --background-image:linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5))  !important; --background-size:auto auto  !important; --background-position:50% 50%  !important; --background-attachment:scroll  !important; --background-repeat:no-repeat  !important;\"><\/div>\n<div class=\"tve-cb\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-179dcccc5f2\" style=\"\">\n<p data-css=\"tve-u-179dccd17ef\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 import openpyxl<\/b><\/p>\n<p data-css=\"tve-u-179dccd17f1\" style=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <b># load the workbook with load_workbook method<\/b><\/p>\n<p data-css=\"tve-u-179dccd17f3\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccd17f4\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 book = openpyxl.load_workbook(<\/b><b>&#8220;C:\\Work\\PythonExcel.xlsx&#8221;)<\/b><\/p>\n<p data-css=\"tve-u-179dccd17f5\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccd17f7\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # to get active worksheet<\/b><\/p>\n<p data-css=\"tve-u-179dccd17f8\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccd17f9\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sheet = book.active<\/b><\/p>\n<p data-css=\"tve-u-179dccd17fa\" style=\"\"><b> <\/b><\/p>\n<p data-css=\"tve-u-179dccd17fc\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # set value with value method at 2nd row and 4th column<\/b><\/p>\n<p data-css=\"tve-u-179dccd17fd\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/b><\/p>\n<p data-css=\"tve-u-179dccd17fe\" style=\"\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sheet.cell (row = 1, column = 4).value = &#8220;Email&#8221;<\/b><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\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 class=\"tve-froala\" 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 class=\"\"><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 class=\"\">Code Implementation to get all values in the excel<\/h5>\n<\/div>\n<div class=\"thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad\">\n<div class=\"tve-content-box-background\" style=\"background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)) !important; background-size: auto !important; background-position: 50% 50% !important; background-attachment: scroll !important; background-repeat: no-repeat !important; --background-image:linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5))  !important; --background-size:auto auto  !important; --background-position:50% 50%  !important; --background-attachment:scroll  !important; --background-repeat:no-repeat  !important;\"><\/div>\n<div class=\"tve-cb\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-179dcce24e3\" style=\"\">\n<p><b><span data-css=\"tve-u-179dcce80a7\" style=\"color: rgb(255, 255, 255);\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0import openpyxl<\/span><\/b><\/p>\n<p><span data-css=\"tve-u-179dcce80aa\" style=\"color: rgb(255, 255, 255);\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <b># load the workbook with load_workbook method<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80ab\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80ad\" style=\"color: rgb(255, 255, 255);\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 book = openpyxl.load_workbook(<\/b><b>&#8220;C:\\Work\\PythonExcel.xlsx&#8221;)<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80af\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80b0\" style=\"color: rgb(255, 255, 255);\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # to get active worksheet<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80b2\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80b4\" style=\"color: rgb(255, 255, 255);\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sheet = book.active<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80b5\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80b6\" style=\"color: rgb(255, 255, 255);\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # to iterate through the rows<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80b8\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80b9\" style=\"color: rgb(255, 255, 255);\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for i in range ( 1, sheet.max_row + 1):<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80bb\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80bc\" style=\"color: rgb(255, 255, 255);\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0# to iterate through the columns<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80bd\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80bf\" style=\"color: rgb(255, 255, 255);\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0for j in range ( 1, s.max_column + 1):<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80c0\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80c1\" style=\"color: rgb(255, 255, 255);\"><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # to get the cell data and print<\/b><\/span><\/p>\n<p><span data-css=\"tve-u-179dcce80c3\" style=\"color: rgb(255, 255, 255);\"><b> <\/b><\/span><\/p>\n<p><b><span data-css=\"tve-u-179dcce80c4\" style=\"color: rgb(255, 255, 255);\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 print (sheet.cell (row=i, column=j). value)<\/span> <\/b><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\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 class=\"tve-froala\" 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 class=\"tve-froala\" 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<\/div>\n<\/div>\n<\/div>\n<div class=\"tcb_flag\" style=\"display: none\"><\/div>\n<\/section>\n<p><\/body><\/html><\/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":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,2],"tags":[],"class_list":["post-527","post","type-post","status-publish","format-standard","hentry","category-python-automation","category-selenium","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":0,"href":"https:\/\/rahulshettyacademy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/527\/revisions"}],"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}]}}