kath wrote: > Hi, > > the following shows the contents of "datebook.xls" > > Date > 8/9/2006 > 8/9/2006 > 8/9/2006 > 8/9/2006 > 8/9/2006 > > # read_date.py > import xlrd > > book = xlrd.open_workbook("datebook.xls") > sh = book.sheet_by_index(0) > ex_qdate=sh.cell_value(rowx=1,colx=0) > pyd=datetime.date(1900,1,1)+datetime.timedelta(days=sh.cell_value(rowx=1,colx=0))
############################ Go back and read *ALL* the responses to your previous question. The above is *INCORRECT*. As you can see, for input of 8/9/2006 (M/D/YYYY format), it produces 2006-08-11. *Please* read the sections on Excel dates in the xlrd documentation. ############################ > print pyd > > for c in range(sh.ncols): > for r in range(sh.nrows): > print sh.cell_value(rowx=r,colx=c) Problem 1: you are including the heading. Add this in here: print "row %d, col %d, cell_type %d" % (r, c, sh.cell_type(r, c)) and that might give you a clue. > print > datetime.date(1900,1,1)+datetime.timedelta(days=sh.cell_value(rowx=r,colx=c)) Maybe Problem 2: your posting seems to be missing indentation on this line. > > ---- Output ---- > >>> > 2006-08-11 > Date > Traceback (most recent call last): > File "D:/Python23/Testing area/Python and Excel/read_date.py", line How do you manage to get both "D:" and "/" in a path? Which version of which OS are you running? Why are you using Python 2.3? Why are you keeping your own files in a subdirectory of your Python installation? > 12, in ? > print > datetime.date(1900,1,1)+datetime.timedelta(days=sh.cell_value(rowx=r,colx=c)) > TypeError: unsupported type for timedelta days component: unicode > >>> > > The first print statement gives me desired output. Whats wrong with > second print statement? > When I give the discriptor or index explicitly its giving the correct > answer. > Why not in the loop? As explained above. > > Am I wrong some where? I think that's not an reasonable conclusion :-) HTH, John -- http://mail.python.org/mailman/listinfo/python-list