使用 XLWINGS 打开工作簿而不使其可见

新手上路,请多包涵

我开始使用 XLWings(并不是我喜欢 Excel,但这是我必须要做的事情)。问题是我找不到让 Python 在不显示工作簿的情况下打开工作簿的方法。

似乎旧 XLWings 0.6.4 中工作簿的构造函数是 xlwings.Workbook,其中一个参数是标志“app_visible”(参见 http://docs.xlwings.org/en/v0.6.4/api.html ).

但是,在新的 v0.9.2 中,Workbook 已被 Book 取代,并且 Book 没有任何此类标志( http://docs.xlwings.org/en/stable/api.html )。 App 对象确实有它,我认为这是要走的路。所以我编码:

 import xlwings as xw

app = xw.App(visible=False)
filename = os.path.join(PATH_EXCEL_SAMPLES, r"rangosConDatos_sample01.xls")
book = xw.Book(filename)
# Do stuff with the info in the book
book.close()  # Ya puedo cerrar el libro.
app.kill()

但是,遗憾的是,当

book = xw.Book(filename)

执行应用程序的’visible’属性突然变为True,并且显示了书。我不知道这是所需的功能还是意外的行为。无论如何,任何想法我应该怎么做?

原文由 zeycus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

从版本 0.24.3 开始,实现了 with xw.App ,惯用的方式是:

 import xlwings as xw

with xw.App(visible=False) as app:
    book = xw.Book("test.xlsx")

    # Do some stuff e.g.
    book.sheets[0]["A1"].value = 12345

    book.save("test.xlsx")
    book.close()

这样做的好处是,如果您使用隐藏实例并且您的代码失败,则不会在后台留下任何隐藏的 excel 进程。

原文由 mouwsy 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是我的工作代码片段:

     import xlwings

    excel_app = xlwings.App(visible=False)
    excel_book = excel_app.books.open('PATH_TO_YOUR_XLSX_FILE')
    excel_book.save()
    excel_book.close()
    excel_app.quit()

原文由 Alexey Korolkov 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题