在Excel单元格中,我调用函数fff(DATE(2001,1,1))。要接收日期参数,我使用(xlwings 0.10.0)以下代码:
@xw.func
@xw.arg('req_date', dates=datetime.date) # I also tried datetime.datetime
def fff(req_date):
print req_date
只打印一个数字,而不是日期时间对象。我通过调用
解决了这个问题req_date = datetime.datetime(1899, 12, 30)
+ datetime.timedelta(days=req_date)
但是我想知道xlwings方式我做错了什么?!
答案 0 :(得分:2)
如果Excel中的单元格格式化为日期,则xlwings仅执行自动转换为datetime
对象。也就是说,如果您将=DATE(2001,1,1)
放入一个单元格然后在另一个单元格中写入=fff('A1')
,它将按预期工作(假设日期公式在A1中)。