Newly introduced KeyError problem in cell.py _set_time_format method
Created originally on Bitbucket by marcskovmadsen (Marc Skov Madsen)
The code has just been changed to
def _set_time_format(self, value): """Set number format for Python date or time""" fmts = { datetime.datetime:numbers.FORMAT_DATE_DATETIME, datetime.date:numbers.FORMAT_DATE_YYYYMMDD2, datetime.time:numbers.FORMAT_DATE_TIME6, datetime.timedelta:numbers.FORMAT_DATE_TIMEDELTA, } self.number_format = fmts[type(value)]
from (v 2.5.5)
def _set_time_format(self, value): """Set number format for Python date or time""" if isinstance(value, datetime.datetime): self.number_format = numbers.FORMAT_DATE_DATETIME elif isinstance(value, datetime.date): self.number_format = numbers.FORMAT_DATE_YYYYMMDD2 elif isinstance(value, datetime.time): self.number_format = numbers.FORMAT_DATE_TIME6 elif isinstance(value, datetime.timedelta): self.number_format = numbers.FORMAT_DATE_TIMEDELTA return value
You can see that version 2.6 will throw key error when the value does not have one of the above types.
I have experienced this key error when using pandas.to_excel method
df.to_excel(writer, "output")
The problem is that my value is of type pandas.TimeStamp and thus not recognized. Please return value when the type is not recognized. Thanks