使用 XLWINGS 打开工作簿而不使其可见
Open a Workbook with XLWINGS without making it visible
我开始使用 XLWings(我一点也不喜欢 Excel,但这是我必须要做的事情)。问题是我无法找到让 Python 在不显示的情况下打开工作簿的方法。
在旧的 XLWings 0.6.4 中,Workbooks 的构造函数似乎是 xlwings.Workbook,其中一个参数是一个标志 'app_visible'(参见 http://docs.xlwings.org/en/v0.6.4/api.html)。
不过,在新的v0.9.2中,Workbook已经被Book取代,Book没有任何这样的flag(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,显示书。我不知道这是所需的功能还是意外的行为。无论如何,我应该怎么做?
你可以试试'with open',例如
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)
这是我的工作代码片段:
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()
您也可以试试:
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()
#已更正拼写错误
这对我有用:
import xlwings as xw
app = xw.App(visible=False)
readsheet = xw.Book('FILE_PATH').sheets['Sheet1']
df = pd.DataFrame(readsheet.range('A1', 'Z99').value)
从 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 进程留在后台。
我开始使用 XLWings(我一点也不喜欢 Excel,但这是我必须要做的事情)。问题是我无法找到让 Python 在不显示的情况下打开工作簿的方法。
在旧的 XLWings 0.6.4 中,Workbooks 的构造函数似乎是 xlwings.Workbook,其中一个参数是一个标志 'app_visible'(参见 http://docs.xlwings.org/en/v0.6.4/api.html)。
不过,在新的v0.9.2中,Workbook已经被Book取代,Book没有任何这样的flag(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,显示书。我不知道这是所需的功能还是意外的行为。无论如何,我应该怎么做?
你可以试试'with open',例如
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)
这是我的工作代码片段:
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()
您也可以试试:
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()
#已更正拼写错误
这对我有用:
import xlwings as xw
app = xw.App(visible=False)
readsheet = xw.Book('FILE_PATH').sheets['Sheet1']
df = pd.DataFrame(readsheet.range('A1', 'Z99').value)
从 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 进程留在后台。