是否有与带有xlwings的PyXll @xl_func(macro=True)等效的装饰器?

这样可以与Excel中的整个工作簿进行交互吗?

一个虚拟示例:单元格“ E5”中的=test()返回错误:

@xw.func
def test():
    wb = xw.Book.caller()
    wb.sheets[0].range('A1').formula = wb.name
    return 'done'



  意外的Python错误:TypeError:SAFEARRAYS的对象必须为
  序列(序列)或一个缓冲区对象。


为了澄清起见:我希望能够编写Excel函数,而无需数组公式,按钮或宏。

最佳答案

是的,xw.sub,来自docs

import xlwings as xw

@xw.sub
def my_macro():
    """Writes the name of the Workbook into Range("A1") of Sheet 1"""
    wb = xw.Book.caller()
    wb.sheets[0].range('A1').value = wb.name

关于python - 是否有一个与xlwings的PyXll`@xl_func(macro = True)`等效的装饰器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38845707/

10-10 18:54