Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python xlrd module

Tags:

python

xlrd

According to the documentation of the XLRD module,

 row_values(rowx, start_colx=0, end_colx=None)

"Returns a slice of the values of the cells in the given row."

And given the following python code:

import xlrd
wb=xlrd.open_workbook("xl1.xlsx")
sh = wb.sheet_by_index(0)
for rownum in range(sh.nrows):
    print sh.row_values(rownum) 

The output is:

 [12.0, u'test.0']
 [34.0, u'te.st']
 [u'test123', u'12.test']

and the exel file holds the following data:

12.0 , test.0 , 34.0 , te.st , test123 , 12.test

So, what type of data structure do I get as a line according to the output? Its not a tuple, (becasue when printing a tuple type, there is no u' as a prefix to a string), and what is the meaning of the u' ? And also its like we have two types of data in the data structure - int and "non int". Is it true? I could not find any information about this in the documentation. Thanks!

like image 611
izac89 Avatar asked Nov 03 '22 19:11

izac89


1 Answers

row_values returns a list of cell values with appropriate data types. Data type of each item in the list depends on the cell type in the source excel file.

There could be items with only string, float and int data types, see this mapping table (find there docs for Cell) for more info.

u just means that this is a unicode string. Documentation explains it pretty well.

Hope that helps.

like image 67
alecxe Avatar answered Nov 15 '22 04:11

alecxe