扩展

使用自定义代码(如 UDF 或 RunPython 宏)扩展 xlwings 插件非常简单,这样可以部署它们而无需最终用户自己导入或编写函数。只需向 xlwings 插件添加另一个 VBA 模块,包含相应的代码即可。

UDF 扩展可以从每个工作簿中使用,而无需设置引用。

Excel 内部 SQL

xlwings 插件附带一个内置扩展,该扩展增加了 Excel 中的 SQL 语法(sqlite 方言):

=sql(SQL Statement, [alias a], table a, [alias b], table b, ...)
_images/sql.png

如果没有提供别名,则表会自动别名化为a, b, c等等,如截图所示。然而,从 v0.33.5 开始,您可以提供自己的别名/表名,如下所示:

=sql(
    "SELECT customers.name, o.product, o.amount
    FROM customers
    INNER JOIN b ON customers.customer_id = o.customer_id",
    "customers", A1:D4,
    "o", Orders[#All]
)

这意味着,在提供范围引用作为下一个参数之前,您需要先提供表名/别名,类似于=LET公式在 Excel 中的工作方式。

由于此扩展使用了 UDF,因此目前仅可在 Windows 上使用。不过,通过 xlwings Server,可以在 macOS 和网页版 Excel 上使用此公式。