簡體   English   中英

如何使用xlwings在python for循環中打開和關閉excel工作簿

[英]How to open and close an excel workbook in a python for loop using xlwings

我需要在 python for循環中打開和關閉同一個工作簿,而不必保存工作簿。 我在xlwings嘗試了以下xlwings

import xlwings as xw

for i in range(5):
    print(i)
    book = xw.Book()
    book.app.quit()

然而,這只會在第一次迭代中運行。 在第二次迭代時,我收到一個錯誤:

Traceback (most recent call last):
  File "D:/TEMP/SE/python/ref.py", line 5, in <module>
    book = xw.Book('tree_template.xlsx')
  File "C:\Users\aboufira\AppData\Local\Continuum\miniconda3\envs\SE\lib\site-packages\xlwings\main.py", line 533, in __init__
    for wb in app.books:
  File "C:\Users\aboufira\AppData\Local\Continuum\miniconda3\envs\SE\lib\site-packages\xlwings\main.py", line 374, in books
    return Books(impl=self.impl.books)
  File "C:\Users\aboufira\AppData\Local\Continuum\miniconda3\envs\SE\lib\site-packages\xlwings\_xlwindows.py", line 397, in books
    return Books(xl=self.xl.Workbooks)
  File "C:\Users\aboufira\AppData\Local\Continuum\miniconda3\envs\SE\lib\site-packages\xlwings\_xlwindows.py", line 313, in xl
    self._xl = get_xl_app_from_hwnd(self._hwnd)
  File "C:\Users\aboufira\AppData\Local\Continuum\miniconda3\envs\SE\lib\site-packages\xlwings\_xlwindows.py", line 222, in get_xl_app_from_hwnd
    ptr = accessible_object_from_window(child_hwnd)
  File "C:\Users\aboufira\AppData\Local\Continuum\miniconda3\envs\SE\lib\site-packages\xlwings\_xlwindows.py", line 190, in accessible_object_from_window
    res = oledll.oleacc.AccessibleObjectFromWindow(
  File "_ctypes/callproc.c", line 948, in GetResult
OSError: [WinError -2147467259] Unspecified error

為什么會出現這種情況? 如何讓 xlwings 退出應用程序而不引起任何問題?

您的代碼幾乎是正確的,請使用:

import xlwings as xw

for i in range(5):
    print(i)
    app = xw.App(visible=True)
    book = xw.Book()
    app.quit()

如果您想打開工作簿而不顯示它,也可以使用app = xw.App(visible=False)

使用它來滿足彈出窗口

app.display_alerts=假

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM