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

时间:2016-08-09 08:31:11

标签: python xlwings

是否有与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函数,没有数组公式或按钮或宏。

1 个答案:

答案 0 :(得分:1)

是,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