App

App(可见性=None, 规范=None, 添加书籍=True, 实现=None)

一个应用程序对应于一个 Excel 实例,通常应作为上下文管理器使用,以确保一切都能正确清理,并防止僵尸进程。可以如下启动新的 Excel 实例:

import xlwings as xw

with xw.App() as app:
    print(app.books)

应用程序对象是apps集合访问它们:

>>> xw.apps
Apps([<Excel App 1668>, <Excel App 1644>])
>>> xw.apps[1668]  # get the available PIDs via xw.apps.keys()
<Excel App 1668>
>>> xw.apps.active
<Excel App 1668>

参数

可见性布尔值,默认为 None

返回或设置一个布尔值,用于确定应用程序是否可见。默认情况下保持状态不变,或者如果对象尚不存在,则将 visible 设置为 True。

规范字符串,默认值为 None

仅限 Mac,使用 Excel 应用程序的完整路径,例如/Applications/Microsoft Office 2011/Microsoft Excel/Applications/Microsoft Excel

在 Windows 上,如果你想更改 xlwings 与之通信的 Excel 版本,请转到Control Panel > Programs and FeaturesRepair您希望设为默认值的 Office 版本。

注意

在 Mac 上,尽管 xlwings 允许运行多个 Excel 实例,但这是 Excel for Mac 不支持的功能:与 Windows 不同,如果文件已经在另一个实例中打开,Excel 不会提示您打开只读版本的文件。这意味着你需要自己注意,以免不同实例覆盖同一文件。

激活(抢夺焦点=False)

激活 Excel 应用程序。

参数

抢夺焦点布尔值,默认为False

如果为 True,将焦点从前台应用程序传递给 Excel。

在版本 0.9.0 中添加。

警报(提示, 标题=None, 按钮='确认', 模式=None, 回调=None)

这对应于MsgBox在 VBA 中,显示警报/消息框并返回所按按钮的值。对于 xlwings Server,该函数不返回值,而是接受回调的名称,它将提供所按按钮的值。

参数

提示字符串,默认值为 None

要显示的消息。

标题字符串,默认值为 None

警报的标题。

按钮字符串,默认值"ok"

可以为"ok", "ok_cancel", "yes_no""yes_no_cancel".

模式字符串,默认值为 None

可以是"info""critical"。Google 表格不支持。

回调字符串,默认值为 None

仅由 xlwings Server 使用:您可以提供一个函数的名称,该函数将被调用,并将所按按钮的值作为参数。该函数必须存在于客户端,即在 VBA 或 JavaScript 中。

返回值

按钮值:字符串或 None

返回值None当与 xlwings Server 一起使用时,否则返回按下按钮的小写值:"ok", "cancel", "yes", "no".

在 0.27.13 版本中新增。

属性 api

返回所使用引擎的原生对象 (pywin32appscriptobj) 使用的引擎的成员。

在版本 0.9.0 中添加。

属性 工作簿

当前打开的所有工作簿对象的集合。

在版本 0.9.0 中添加。

计算()

计算所有打开的工作簿。

在 0.3.6 版本中新增。

属性 计算

返回或设置表示计算模式的计算值。模式:'manual', 'automatic', 'semiautomatic'

示例

>>> import xlwings as xw
>>> wb = xw.Book()
>>> wb.app.calculation = 'manual'

在版本 0.9.0 中更改。

属性 剪切复制模式

获取或设置剪切或复制模式的状态。接受False用于设置和返回None, copycut用于获取状态。

在版本 0.24.0 中添加。

属性 显示警报

默认值为 True。将此属性设置为 False 以在代码运行期间抑制提示和警报消息;当消息需要响应时,Excel 将选择默认响应。

在版本 0.9.0 中添加。

属性 启用事件

True如果启用了事件。读写布尔值。

添加于版本 0.24.4。

属性 窗口句柄

返回窗口句柄(仅限 Windows)。

在版本 0.9.0 中添加。

属性 交互式模式

True如果 Excel 处于交互模式。如果您将此属性设置为False,Excel 将阻止来自键盘和鼠标的输入(除非您的代码显示的对话框除外)。读写布尔值。注意:macOS 上不受支持。

添加于版本 0.24.4。

强制退出()

强制 Excel 应用程序退出,通过终止其进程。

在版本 0.9.0 中添加。

(名称)

在 Excel VBA 中运行不属于特定工作簿的 Sub 或 Function,例如属于加载项的一部分。

参数

名称Sub 或 Function 的名称,带或不带模块名,

例如,'Module1.MyMacro''MyMacro'

示例

此 VBA 函数:

Function MySum(x, y)
    MySum = x + y
End Function

可以这样访问:

>>> import xlwings as xw
>>> app = xw.App()
>>> my_sum = app.macro('MySum')
>>> my_sum(1, 2)
3

支持类型:

Function MySum(x as integer, y as integer)
    MySum = x + y
End Function
>>> import xlwings as xw
>>> app = xw.App()
>>> my_sum = app.macro('MySum')
>>> my_sum(1, 2)
3

但是不支持带有类型的数组。因此以下代码不会起作用

Function MySum(arr() as integer)
    ' code here
End Function

另见:Book.macro()

在版本 0.9.0 中添加。

属性 路径

返回 App 安装位置的路径。

在 0.28.4 版本中新增。

属性 进程 ID

返回应用程序的 PID。

在版本 0.9.0 中添加。

属性(**kwargs)

上下文管理器,允许轻松临时更改应用程序的属性。一旦代码离开 with 块,属性将恢复到之前的状态。注意:必须作为上下文管理器使用,否则将不起作用。此外,只能使用可以读取和写入的应用程序属性。

示例

import xlwings as xw
app = App()

# Sets app.display_alerts = False
with app.properties(display_alerts=False):
    # do stuff

# Sets app.calculation = 'manual' and app.enable_events = True
with app.properties(calculation='manual', enable_events=True):
    # do stuff

# Makes sure the status bar is reset even if an error happens in the with block
with app.properties(status_bar='Calculating...'):
    # do stuff

添加于版本 0.24.4。

退出()

不保存任何工作簿的情况下退出应用程序。

在 0.3.3 版本中新增。

范围(cell1, cell2=None)

活动工作簿的活动表中的 Range 对象,详见Range().

在版本 0.9.0 中添加。

渲染模板(模板=None, 输出=None, 工作簿设置=None, **数据)

此函数需要 xlwingsPRO.

这是对mysheet.render_template

将所有关键词参数的值写入output文件,根据template以及其中包含的变量(Jinja 变量语法)。支持以下变量类型:

字符串、数字、列表、简单字典、NumPy 数组、Pandas DataFrame、图片和 Matplotlib/Plotly 图形。

参数

模板:字符串或类似路径的对象

指向您的 Excel 模板的路径,例如r'C:\Path\to\my_template.xlsx'

输出:字符串或类似路径的对象

您报告的路径,例如r'C:\Path\to\my_report.xlsx'

工作簿设置:字典,默认值为 None

一个xlwings.Book参数的字典,详细信息请参阅:xlwings.Book。例如:book_settings={'update_links': False}.

数据:kwargs

模板中使用的所有键/值对。

返回值

wb:xlwings 工作簿

添加于版本 0.24.4。

属性 屏幕更新

关闭屏幕更新以加速脚本运行。您将无法看到脚本正在做什么,但它会运行得更快。请记住,在脚本结束时将 screen_updating 属性重新设置为 True。

在 0.3.3 版本中新增。

属性 选择

返回选中的单元格作为范围。

在版本 0.9.0 中添加。

属性 启动路径

返回XLSTART的路径,这是通过执行xlwings addin install.

在 0.19.4 版本中新增。

属性 状态栏

获取或设置状态栏的值。如果 Excel 控制了它,则返回False

在 0.20.0 版本中新增。

属性 版本

返回 Excel 版本号对象。

示例

>>> import xlwings as xw
>>> xw.App().version
VersionNumber('15.24')
>>> xw.apps[10559].version.major
15

在版本 0.9.0 中更改。

属性 可见性

获取或设置 Excel 的可见性为TrueFalse.

在 0.3.3 版本中新增。