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 Features
和Repair
您希望设为默认值的 Office 版本。
注意
在 Mac 上,尽管 xlwings 允许运行多个 Excel 实例,但这是 Excel for Mac 不支持的功能:与 Windows 不同,如果文件已经在另一个实例中打开,Excel 不会提示您打开只读版本的文件。这意味着你需要自己注意,以免不同实例覆盖同一文件。
- 警报(提示, 标题=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¶
返回所使用引擎的原生对象 (
pywin32
或appscript
obj) 使用的引擎的成员。在版本 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
,copy
或cut
用于获取状态。在版本 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 版本中新增。
- 渲染模板(模板=None, 输出=None, 工作簿设置=None, **数据)¶
此函数需要 xlwingsPRO.
将所有关键词参数的值写入
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 的可见性为
True
或False
.在 0.3.3 版本中新增。