def make_excel_date_caster(file_name):
"""Make a date caster function that can convert dates from a particular workbook. This is required
because dates in Excel workbooks are stupid. """
from xlrd import open_workbook
wb = open_workbook(file_name)
datemode = wb.datemode
def excel_date(v):
from xlrd import xldate_as_tuple
import datetime
try:
year, month, day, hour, minute, second = xldate_as_tuple(float(v), datemode)
return datetime.date(year, month, day)
except ValueError:
# Could be actually a string, not a float. Because Excel dates are completely broken.
from dateutil import parser
try:
return parser.parse(v).date()
except ValueError:
return None
return excel_date
评论列表
文章目录