2016-09-28 1 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 

: 날짜 인수를 받으려면, 나는 (xlwings 0.10.0) 다음 코드를 사용합니다. 나는이 문제를 전화로 해결했다

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

그러나 내가 xlwings 방식으로 무엇을 잘못했는지에 관해 궁금하게 생각한다?!

답변

2

xlwings은 Excel의 셀이 Date 형식으로되어있는 경우 datetime 개체로 자동 변환을 수행합니다. 즉, =DATE(2001,1,1)을 하나의 셀에 넣은 다음 다른 셀에 =fff('A1')을 쓰면 예상대로 작동합니다 (날짜 공식이 A1이라고 가정).

+0

좋아요, 물론 작동합니다 (물론). 그러나 나는 그것이 약간 오도하기 쉬운가 두렵습니다. @arg를 사용하면 인수의 유형을 지정한다고 생각했습니다. 신경 쓰지 마세요, 이것은 사소한 기능입니다. – Sasha

+0

현재 날짜 변환기는 날짜 형식의 셀에서만 작동합니다. 나는 당신의 요점을 알게되었습니다 - 미래의 향상이 될 수도 있습니다. –