Skip to main content

The XLRD python module for reading the spreadsheet documents - Introduction

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.

"Knowledge is gained by sharing the knowledge, not hoarding it."
Thank you, Have a nice day :)

Popular posts from this blog

Project Euler Problem 62 solution with python

Cubic permutations ¶ The cube, 41063625 (3453), can be permuted to produce two other cubes: 56623104 (3843) and 66430125 (4053). In fact, 41063625 is the smallest cube which has exactly three permutations of its digits which are also cube. Find the smallest cube for which exactly five permutations of its digits are cube.

Project Euler Problem 67 Solution with Python

Maximum path sum II By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. 3 7 4 2 4 6 8 5 9 3 That is, 3 + 7 + 4 + 9 = 23. Find the maximum total from top to bottom in triangle.txt (right click and 'Save Link/Target As...'), a 15K text file containing a triangle with one-hundred rows.

Problem 43 Project Euler Solution with python

Sub-string divisibility The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property. Let d 1 be the 1 st digit, d 2 be the 2 nd digit, and so on. In this way, we note the following: d 2 d 3 d 4 =406 is divisible by 2 d 3 d 4 d 5 =063 is divisible by 3 d 4 d 5 d 6 =635 is divisible by 5 d 5 d 6 d 7 =357 is divisible by 7 d 6 d 7 d 8 =572 is divisible by 11 d 7 d 8 d 9 =728 is divisible by 13 d 8 d 9 d 10 =289 is divisible by 17 Find the sum of all 0 to 9 pandigital numbers with this property. One might write a simple solution using direct if else statements for this problem. Using if else statements, the execution time may be a few seconds. But this is not a very good approach. I too had written a program with if else statement which will take each and every permutation of the 0-9 Pandigital and check for the conditions given in the qu...