使用Python xlwings如何获取不同实例下已打开Excel工作簿的完整路径
解决方案
你现有代码只能拿到文件名集合的核心原因有两个:
- 直接打印
xw.books返回的工作簿集合时,xlwings默认只输出工作簿名称,没有调用存储完整路径的属性 - 默认
xw.books仅会读取当前关联的第一个Excel实例里的工作簿,不会遍历你打开的所有多实例Excel进程
单Excel实例场景获取完整路径
直接遍历工作簿集合,调用每个工作簿对象的fullname属性即可拿到完整路径:
import xlwings as xw for wb in xw.books: print(wb.fullname)
多Excel实例场景获取所有工作簿完整路径
需要先遍历所有正在运行的Excel实例,再逐个读取实例下的所有工作簿的fullname属性:
import xlwings as xw # 遍历所有运行中的Excel实例 for app in xw.apps: # 遍历当前实例下的所有打开的工作簿 for wb in app.books: # 输出完整路径 print(wb.fullname)
注意:如果某个工作簿是新建未保存的状态,
fullname属性会和name属性一致,仅返回文件名,因为该文件尚未在磁盘生成存储路径。
内容的提问来源于stack exchange,提问作者shweta
相关产品推荐
相关产品推荐

