网上介绍的使用 python
新建 excel
的插入控件的教程经验较多,但是很少讲到如何修改现有的编辑好的 excel
文件中的复选框控件的状态(同理其他控件)。
这里分享一下利用 win32com.client
操作excel中控件的经验。
示例代码如下:
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
import win32com.client
# 创建WPS对象,EXCEL也可以
wps = win32com.client.DispatchEx('Excel.Application')
# 打开文档
doc = wps.Workbooks.Open(r'xxx.xlsx')
# 获取文档中的所有checkbox对象
# 获取第一个工作表
sheet = doc.Worksheets(1)
shapes = sheet.Shapes
# 遍历筛选复选框形状
checkboxes = []
for shape in shapes:
if shape.FormControlType == 1:
checkboxes.append(shape)
# -4146 不选中,1 选中
# 输出复选框名称和状态
for checkbox in checkboxes:
name = checkbox.Name
status = checkbox.OLEFormat.Object.Value
print(f"复选框名称:{name},状态:{status}")
if name == "Check Box 1":
checkbox.OLEFormat.Object.Value = 1 # 把复选框的勾选状态变更为选中
# 保存并关闭文档
doc.Save()
doc.Close()
# 退出WPS
wps.Quit()