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