缺失的功能

如果你在 xlwings 中缺失某项功能,请执行以下操作:

  1. 最重要的是,在GitHub上提交问题。添加功能应由用户驱动,因此只有当你告诉我们你缺失什么时,它最终才会被加入到库中。顺便说一下,我们也欢迎 pull requests!

  2. 解决方案:本质上,xlwings 只是围绕以下内容的智能包装器pywin32在 Windows 上和appscript在 Mac 上。你可以通过调用api属性访问底层对象:

    >>> sheet = xw.Book().sheets[0]
    >>> sheet.api
    # Windows (pywin32)
    <win32com.gen_py.Microsoft Excel 16.0 Object Library._Worksheet instance at 0x2260624985352>
    # macOS (appscript)
    app(pid=2319).workbooks['Workbook1'].worksheets[1]
    

    这种方法同样适用于其他对象,例如sheet.range('A1').api等等。

    底层对象几乎可以为你提供 VBA 能够做的一切,使用 pywin32(感觉很像 VBA)和 appscript(感觉不像 VBA)的语法。但除了看起来不太美观外,记住它会使你的代码平台特定化 (!),即即使你选择第二种方法,仍需遵循第一种方法并提交问题,以便该功能以跨平台和具备 Python 风格的语法进入库。

示例:使用 VBA 的解决方案Range.WrapText

# Windows
sheet['A1'].api.WrapText = True

# Mac
sheet['A1'].api.wrap_text.set(True)