John Machin wrote: > kath wrote: > > How do I read an Excel file in Python? > > > > I have found a package to read excel file, which can be used on any > > platform. > > Hi Sudhir, > So far, so good :-) > > > > > http://www.lexicon.net/sjmachin/xlrd.htm > > I installed and working on the examples, I found its printing of cell's > > contents in a different manner. > > > > >>> import xlrd > > >>> book=xlrd.open_workbook("Calculation_file.xls") > > >>> book=xlrd.open_workbook("testbook.xls") > > >>> sh=book.sheet_by_index(0) > > >>> for row in range(sh.nrows): > > print sh.row(rx) > > [text:u'name', text:u'address', text:u'ph'] > > [text:u'sudhir', text:u'bangalore', number:1234.0] > > [text:u'vinay', text:u'bangalore', number:3264.0] > > It helps when asking questions if you copy/paste exactly what is on > your screen; > in this case > print sh.row(rx) > would have given an error; you must have typed > for rx in range..... > > A row is returned as a sequence of Cell objects. What you are seeing is > Python automatically doing repr(cell) on each cell in the row. The > Cell.__repr__ method formats it that way for debugging. Here are some > examples from a little test file of mine: > > >>> import xlrd > >>> bk = xlrd.open_workbook('sjm1.xls') > >>> sh = bk.sheet_by_index(0) > >>> row0 = sh.row(0) > >>> row0 > [text:u'fubar', number:1.0, number:2.0] > >>> firstcell = row0[0] > >>> type(firstcell) > <class 'xlrd.sheet.Cell'> > >>> firstcell.ctype > 1 > >>> # cell type 1 is text > >>> firstcell.value > u'fubar' > >>> repr(firstcell) > "text:u'fubar'" > > > > > I am bit confused with slicing. help me.... > > > None of the above is anything to do with slicing; is this a 2nd > problem? > > Perhaps you are having trouble with this: > >>> help(sh.row_slice) > Help on method row_slice in module xlrd.sheet: > > row_slice(self, rowx, start_colx=0, end_colx=None) method of > xlrd.sheet.Sheet instance > ## > # Returns a slice of the Cell objects in the given row. > >>> > > sh.row_slice(rowx, lo, hi) gives the same result as sh.row(rowx)[lo:hi] > -- it is provided because the latter would be inefficient for getting a > small slice from a long row. > > If you are having trouble with the general concept of slicing, perhaps > you might like to try the Python tutorial. Otherwise, please try to be > a bit more specific about what the confusion is. > > HTH, and e-mail me if you prefer ... > > Cheers, > John
Hi, thanks for the reply. I just took some time reading help file and came to know to there is nothing do with slicing. But I do have a problem with date field in the excel file. the date( 8/9/2006 ) in Excel file, i am getting the value as 38938.0, which I get when I convert date values to general format in Excel. I want the actual date value. How do get that? Thank you. regards, Sudhir. -- http://mail.python.org/mailman/listinfo/python-list