2016-09-28 26 views
1

Excelのセルでは、関数fff(DATE(2001,1,1))を呼び出します。Xlwings:日付引数の変換

@xw.func 
@xw.arg('req_date', dates=datetime.date) # I also tried datetime.datetime 
def fff(req_date): 
    print req_date 

数だけではなく、日時オブジェクトを出力します。date引数を受け取るには、私は(xlwings 0.10.0)次のコードを使用します。私は電話で問題を解決しました

req_date = datetime.datetime(1899, 12, 30) 
      + datetime.timedelta(days=req_date) 

しかし、私は何がxlwings方法で間違っていたのだろうか?

答えて

2

xlwingsは、Excelのセルが日付としてフォーマットされている場合、datetimeオブジェクトへの自動変換のみを実行します。つまり、=DATE(2001,1,1)を1つのセルに入れ、別のセルに=fff('A1')と書くと、期待通りに動作します(日付式がA1であると仮定して)。

+0

OK、うまくいきます(もちろん)。しかし、私はそれが少し誤解を招く恐れがあります。私は@argを使って引数の型を指定すると思った。気にしない、これは小さな特徴です。 – Sasha

+0

現在、日付変換は日付形式のセルでのみ機能します。私はあなたのポイントを考えている - 将来の拡張かもしれない。 –