Python: 判断某个Excel文件是否已打开

2022-09-20 14:04:46 浏览数 (1)

文章背景:在操作某个Excel文件时,有时想看看某个Excel文件是否已打开。下面提供两种自定义函数。

运行环境:Win10

编程语言:python3.7

(1)遍历法

代码语言:javascript复制
import win32com.client

def fileisopen1(filepath):
    # 判断Excel文件是否已打开
    # 如果目标工作簿已打开则返回TRUE,否则返回FALSE
    excelapp = win32com.client.Dispatch("Excel.Application")
    flag = False

    num = excelapp.Workbooks.Count
    if num > 0:
        for i in range(1,num 1):
            realpth = excelapp.Workbooks(i).Path   "\"   excelapp.Workbooks(i).Name
            if filepath == realpth:
                flag = True
                break
    return flag

导入win32com.client之前,需要提前安装pywin32第三方模块。可以通过pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32进行安装。

如果已打开的Excel文件较多,则遍历法比较费时间,下面介绍试错法。

(2)试错法

代码语言:javascript复制
import xlwings as xw

def fileisopen2(filepath):
    # 判断Excel文件是否已打开
    # 如果目标工作簿已打开则返回TRUE,否则返回FALSE
    flag = True
    if filepath == "":
        flag = False
    else:
        try:
            wb = xw.Book(filepath)
        except FileNotFoundError:
            flag = False
    return flag

导入xlwings之前,需要提前安装xlwings第三方模块。可以通过pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlwings进行安装。

参考资料:

[1] 使用python判断excel文档是否打开

[2] Python 使用 win32com 模块对 word 文件进行操作(https://www.i4k.xyz/article/qdPython/114439716)

延伸阅读:

[1] VBA: 判断某个Excel文件是否已打开

0 人点赞