NO.036-Excel对象离奇身亡?揭秘绝妙方法解决获取当前激活的excel报错!——By.杭州组
评论
收藏

NO.036-Excel对象离奇身亡?揭秘绝妙方法解决获取当前激活的excel报错!——By.杭州组

经验分享
启航
2023-11-08 11:03·浏览量:807
启航
发布于 2023-11-08 11:03807浏览

作者:启航

关键词:win32com、获取当前激活的excel对象


一、问题背景:

从旺店通或者其他平台导出的excel对象导出之后是直接打开的状态,使用【获取当前激活的excel对象】指令时只能获取到一个excel对象,有些时候可能由于当前打开的office和wps使用的权限与影刀运行的权限不一致或者是其他的一些原因导致获取到的excel对象是空,导致后面的流程报错,使用启动excel指令时可能不知道文件的路径,导致无法启动这个excel。

二、解决方法:

通过win32com库获取到所以已打开的excel路径,存放在列表里面,然后在使用【打开/新建excel】指令去打开excel,然后再去执行相应的操作。获取到的excel路径列表的排序和打开excel的顺序一致,使用的时候可以按照打开excel的时间去获取对应的excel路径列表的项,如果只需要获取最新打开的excel路径,只需列表取最后一项即可。

win32库是默认安装好的,不需要在重新安装这个库了。

1.新建一个python模块输入下面代码,也可以从下面的例子中复制

import win32com.client
def get_excel():
    list_excel = []
    # 创建Excel应用程序对象
    excel = win32com.client.Dispatch("Excel.Application")

    # 获取所有打开的工作簿
    workbooks = excel.Workbooks

    # 遍历所有工作簿
    for workbook in workbooks:
        # 获取工作簿的路径
        workbook_path = workbook.FullName
        list_excel.append(workbook_path)
        return list_excel

2.调用函数,输出excel路径列表,并打开excel

收藏1
全部评论1
最新
发布评论
评论