python操作excel中复选框选中的方式

45 阅读1分钟

网上介绍的使用 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()