xlwings可以后台运行excel吗?

问题描述 投票:0回答:2

我运行 Python XLWings 代码,其中顺序调用多个 Excel 文件。尽管代码在处理完每个 Excel 后将其关闭(并且在任何给定时刻打开的 Excel 不超过 1 个),但该过程变得越来越慢。内存测试显示关闭excel文件后仍有残留进程。

有更流畅的方法吗? XLWings 是否可以在后台模式下调用这些 Excel 文件,而无需花费时间和内存来加载界面?

感谢您的帮助。

python excel xlwings
2个回答
9
投票

是的,

xlwings
还允许您将 Excel 应用程序隐藏在后台。为此,您必须使用带有输入参数 xlwings.App
visible=False
 对象。

简单的例子:

import xlwings as xw

app = xw.App(visible=False)
book = app.books[0]
sheet = book.sheets[0]

sheet.range('A1').value = 73913

book.save('book.xlsx')
app.kill()

0
投票

谁能解释一下为什么这段代码会打开2个excel实例?根据我的观察,'app = xw.App(visible=True)' 打开一个新的 Excel 文件,如果我想将其隐藏在后台,我可以操作该文件,但 'wb = app.books.open(file_path)' 打开在一个我无法隐藏的新实例中...

def done_id(file_path, id_to_color):
try:
    # Otwieranie pliku Excel w tle
    app = xw.App(visible=True) # True for tests to see the 2nd instance
    wb = app.books.open(file_path)
    sheet = wb.sheets['LISTA']

    # Przeszukiwanie kolumny B w poszukiwaniu ID i kolorowanie wiersza
    for row in range(3, sheet.range('B' + str(sheet.cells.last_cell.row)).end('up').row + 1):
        if sheet.range('B' + str(row)).value == id_to_color:
            sheet.range('B' + str(row)).color = (0, 255, 0)  # Ustawienie koloru zielonego

    # Zapisanie zmian i zamknięcie pliku
    wb.save()
    wb.close()
except Exception as e:
    print(f"Błąd: {e}")
finally:
    # Zamknięcie aplikacji Excel
    app.quit()
© www.soinside.com 2019 - 2024. All rights reserved.