文章背景:在操作某个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文件是否已打开