如果文件已经打开,如何关闭?
import xlwings as xw
wb = xw.Book(folderpath + 'Metrics - auto.xlsx')
使用try:except:但是需要一种方法来关闭文件以便打开它,或找到文件并使用它?
如果它已经打开,我会收到此错误:
wb = xw.Book(folderpath + 'Metrics - auto.xlsx')
Traceback (most recent call last):
File "<ipython-input-34-85b6fd35627b>", line 1, in <module>
wb = xw.Book(folderpath + 'Metrics - auto.xlsx')
File "C:\Users\ReDimLearning\AppData\Local\Continuum\anaconda2\lib\site-packages\xlwings\main.py", line 480, in __init__
impl = app.books.open(fullname).impl
File "C:\Users\ReDimLearning\AppData\Local\Continuum\anaconda2\lib\site-packages\xlwings\main.py", line 2751, in open
"Cannot open two workbooks named '%s', even if they are saved in different locations." % name
ValueError: Cannot open two workbooks named 'metrics - auto.xlsx', even if they are saved in different locations.
答案 0 :(得分:1)
您可以使用
检查工作簿集合import xlwings as xw
xw.books
并使用以下内容检查您的全名是否已打开:
if myworkbook in [i.fullname for i in xw.books]:
...
答案 1 :(得分:0)
我没有使用xlwings包的经验,但查看Book.__init__
的{{3}},看起来它会自动查找已打开的工作簿的任何实例。如果只有一个,则返回它。如果打开了多个工作簿实例,则会引发错误。如果还没有任何打开的实例,那么它将&#34; connect&#34;它。所以,看起来您不必担心关闭文件。
这与source code对齐,后面写着:
xw.Book提供连接书籍的最简单方法:它看起来像 对于所有应用程序实例中的书并返回错误,应该是 同一本书可以在多个实例中开放。
但是,在连接到工作簿后,如果您确实要关闭它,则有一个documentation方法:
关闭本书而不保存。