我开始使用 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 许可协议
从版本 0.24.3 开始,实现了
with xw.App
,惯用的方式是:这样做的好处是,如果您使用隐藏实例并且您的代码失败,则不会在后台留下任何隐藏的 excel 进程。