如何在 xlwings 中将日期解析为参数

How to parse a date as an argument in xlwings

提问人:Thanasis 提问时间:9/28/2023 更新时间:9/29/2023 访问量:34

问:

我想将日期解析为 python 函数中的参数,但它无法识别。

例如:

def myfunction(cob_ToGet):
    # cob_ToGet is datetime
    print(cob_ToGet.strftime("%d.%m.%Y"))

并从 vba 调用以下内容:

RunPython ("import mypythonfile; mypythonfile.myfunction(cob_ToGet=28.09.2023)")
python-3.x XLWINGS公司

评论


答:

0赞 moken 9/29/2023 #1

我会使用

Sub tester()
    RunPython "import newproject; newproject.myfunction(cob_ToGet='28.09.2023')"
End Sub

或者只是

Sub tester()
    RunPython "import newproject; newproject.myfunction('28.09.2023')"
End Sub

所以在你的职能中;

def myfunction(cob_ToGet):
    # cob_ToGet is datetime
    print(cob_ToGet.strftime("%d.%m.%Y"))

cob_ToGet是一个字符串,因此 strftime 将导致错误。更改为 strptime

像这样的东西会将值返回到单元格“A1”

import xlwings as xw
from datetime import datetime


def myfunction(cob_ToGet):
    # cob_ToGet is datetime
    wb = xw.Book.caller()
    wb.sheets['Sheet1']['A1'].value = datetime.strptime(cob_ToGet, "%d.%m.%Y")

评论

0赞 Thanasis 10/4/2023
有没有办法传递一个将从 python 读取为 datetime 的参数?
0赞 moken 10/5/2023
正如文档所述,它的局限性。