使用XLWINGS打开工作簿而不显示它

时间:2016-08-17 11:23:13

标签: python excel visibility 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中,工作簿已被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)

执行app的'visible'属性突然变为True,并显示该书。我不知道这是一个期望的功能还是一个意外的行为。无论如何,任何想法我应该怎么做?

3 个答案:

答案 0 :(得分:2)

这是我的工作代码片段:

    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()

答案 1 :(得分:1)

例如,您可以尝试“打开”

with open ("write.csv", "a", newline='') as file:  
    fields=['score', 'name']                       
    writer=csv.DictWriter(file, fieldnames=fields)
    writer.writerow({'score' : score, 'name' : username})

with open ("write.csv", "r") as file:
    sortlist=[]
    reader=csv.reader(file)
    for i in reader:
        sortlist.append(i)

答案 2 :(得分:0)

您也可以尝试:

import xlwings as xw

app = xw.App(visible=False)
book = xw.Book('PATH_TO_YOUR_XLSX_FILE')
sheet = book.sheets('sheetname')
df = sheet.range('A1:D10)
book.close()
app.quit()