当前位置: 首页 > article >正文

close excel by keyword 根据关键字关闭 excel 窗口 xlwings 方式实现

根据标题关键字关闭 workbook,如果没有打开的 workbook 则退出 excel

xlwings 方式实现 更方便快捷

def close_excel_by_keyword(keyword):
    if '~$' in keyword:
        return
    app = xw.apps.active
    for workbook in app.books:
        if keyword in workbook.name:
            workbook.close()

file_list = os.listdir(mb51_dir)
    print('file list', file_list)
   
    while any('~$' in x for x in file_list):
        file_list = os.listdir(mb51_dir)
        for file in file_list:
            close_excel_by_keyword(file)
            time.sleep(1)
import win32com.client
import win32gui

def close_excel_by_keyword(keyword):
    # 获取当前所有窗口的句柄
    hwnds = []
    win32gui.EnumWindows(lambda hwnd, param: param.append(hwnd), hwnds)

    # 遍历窗口句柄,查找包含关键字的 Excel 窗口并关闭
    for hwnd in hwnds:
        text = win32gui.GetWindowText(hwnd)
        if keyword in text:
            excel = win32com.client.Dispatch("Excel.Application")
            try:
                workbooks = excel.Workbooks
                for workbook in workbooks:
                    if keyword in workbook.Name:
                        workbook.Close(False)
            except Exception as e:
                pass

    try:
        excel = win32com.client.GetActiveObject("Excel.Application")
        workbooks = excel.Workbooks
        print(workbooks.Count)
        if workbooks.Count == 0:
            # 如果没有打开的工作簿,关闭 Excel.Application
            excel.Quit()
    except:
        # 如果没有 Excel.Application 实例,不需要关闭
        pass

def main():
    keyword = "tw"  # 替换为你要查找的关键字
    close_excel_by_keyword(keyword)

if __name__ == "__main__":
    main()

http://www.kler.cn/a/105689.html

相关文章:

  • Django数据库迁移与反向迁移处理方案分析
  • 2021 年 9 月青少年软编等考 C 语言三级真题解析
  • 多品牌摄像机视频平台EasyCVR视频融合平台+应急布控球:打造城市安全监控新体系
  • 技术速递|Microsoft.Extensions.VectorData 预览版简介
  • 高效工具推荐:基于WebGPU的Whisper Web结合内网穿透远程使用指南
  • 版本控制【Git Bash】【Gitee】
  • C++经典面试题:内存泄露是什么?如何排查?
  • vue3中路由hash与History的设置
  • 【开源】基于SpringBoot的天然气工程业务管理系统的设计和实现
  • 使用Google的地点自动补全功能
  • BC v1.2充电规范
  • 【开源】基于SpringBoot的农村物流配送系统的设计和实现
  • 【STM32】HAL库——串口中断只接收到两个字符
  • 【Java】电子病历编辑器源码(云端SaaS服务)
  • 通过cpolar分享本地电脑上有趣的照片:部署piwigo网页
  • 【Zero to One系列】微服务Hystrix的熔断器集成
  • 如何在用pip配置文件设置HTTP爬虫IP
  • MySQL创建定时任务定时执行sql
  • EasyExcel使用方式(包含导出图片)
  • 【C++】list的介绍及使用 | 模拟实现list(万字详解)
  • Doceker-compose——容器群集编排管理工具
  • ERP管理系统的运作流程是怎样的?
  • 【Axure教程】中继器制作树元件
  • 10月25日,每日信息差
  • IntelliJ IDEA 2023.2正式发布,新UI和Profiler转正
  • LUCEDA IPKISS------Definition Properties 表格查询