xlrd
module for python is an awesome module and I think it is a must for each and every pythonist to have a basic knowledge of this module. This module reads the data in the excel sheets or sometimes called as spreadsheets and thus the data can be used for computation(s) in our python scripts.
But a serious problem I have faced is, when I wanted to use this module it had a documentation which was not in the style of readthedocs. There was one xlrd readthedocs but at the time of writing this post it was empty. Eventhough I searched the internet(google) and have learnt on this module myself, I wanted to create and share my knowledge as a documentation for this module in the form of readthedocs not using the sphinx but manually writing each and everything. A harley davidson style.
Encoding used
This module(xlrd) uses unicode encoding. It is known that from Excel 97 onwards the data is stored in unicode format but the prior versions had some other encoding. But don't worry xlrd will read the data and convert it to unicode. If xlrd is not able to recognize the encoding then it will assume that the encoding is ASCII. If the encoding is not ASCII then it will raise a UnicodeDecodeError, in which case the user has to tell the encoding in which the excel sheet has been saved. We will see how you will supply the encoding format in upcoming sections.
Dates in Excel Spreadsheets
You might think that there are date objects in the excel sheets like in the same way we have python date objects. But in reality it has been found that there are no such data types. Dates are stored as float point numbers. Similar to the Unix time stamp where the value is counted from 00:00:00 Coordinated universal Time, January 1 1970, in excel sheets on windows the dates are stored from January 1 1970, 00:00:00 UTC, and on Macintosh the dates are stored from January 1, 1904, 00:00:00 UTC. Don't worry most of the times xlrd module will look after these things and you don't have to do any extra coding. We will see how to get the date values in excel sheets in further posts.
If you want to know more about the problems that the xlrd development team faced because of the excel sheets storing the data in float type format, you can have a look here: Dates in excel spreadsheets. I feel that it is worth looking at it because if you get any error in your program then you can Handle the errors easily.
All the remaining things are easy to understand, when you will be reading the docs, I will explain them with the code so that you can understand it very easily. Don't worry I assure you that if you can spend some time with this documentation you will gain a good knowledge of xlrd python module.
As always I have tried to explain all the things in this post in a way that it is easy to understand for everyone. In case if you didn't understand anything or have any doubt then comment in the comment box below and I will reply to your comment as soon as possible. You can also contact me from here: Contact me
Also please comment on how I can improve this post such that even the beginners will be able to understand this post easily. Tell me if I have made any typo or have made any mistake or if you want me to add anything which I have missed.
If you want to know more about the problems that the xlrd development team faced because of the excel sheets storing the data in float type format, you can have a look here: Dates in excel spreadsheets. I feel that it is worth looking at it because if you get any error in your program then you can Handle the errors easily.
All the remaining things are easy to understand, when you will be reading the docs, I will explain them with the code so that you can understand it very easily. Don't worry I assure you that if you can spend some time with this documentation you will gain a good knowledge of xlrd python module.
As always I have tried to explain all the things in this post in a way that it is easy to understand for everyone. In case if you didn't understand anything or have any doubt then comment in the comment box below and I will reply to your comment as soon as possible. You can also contact me from here: Contact me
Also please comment on how I can improve this post such that even the beginners will be able to understand this post easily. Tell me if I have made any typo or have made any mistake or if you want me to add anything which I have missed.
"Knowledge is gained by sharing the knowledge, not hoarding it."
Thank you, Have a nice day :)