xlwings(App.books.open/Book 方式打开文件)
import xlwings as xw
import time
app = xw.App(visible=True,add_book=False)
xlwings.App(visible=True,add_book=False)
其中参数 visible(表示处理过程是否可视,也就是处理 Excel 的过程会不会显示出来),add_book(是否打开新的 Excel 程序,也就是是不是打开一个新的 excel 窗口)
创建新 Excel 文件
ex = app.books.add()
ex.save('./ex.xlsx')
#ex.close()
time.sleep(3)
ex2 = app.books.add()
ex2.save('./ex2.xlsx')
#ex2.close()
time.sleep(3)
app.books[0].close() //关闭app中第一个文件(ex.xlsx)
app.quit() //关闭整个excel窗口
# 打开 Excel 文件
简单看了下 xlwings 的使用方法,一开始对使用 App.books.open 打开 excel 文件和用 Book 方法打开的区别不是很清楚,于是做了下面的尝试:
## App.books.open 方式打开
abc = ['A','B','C']
for ii in abc:
app = xw.App(visible=True,add_book=False)
example = app.books.open('./xlwings/ex.xlsx')
sheet = example.sheets[0]
for jj in range(1,10):
loc = ii+str(jj)
sheet.range(loc).value = jj
example.save()
example.close()
time.sleep(2)
app.quit()
Book 方式打开
abc = ['A','B','C']
for ii in abc:
example2 = xw.Book('./xlwings/ex2.xlsx')
sheet2 = example2.sheets[0]
for jj in range(1,10):
loc = ii+str(jj)
sheet2.range(loc).value = jj
example2.save()
example2.close()
在使用 Book 方式打开的过程中,发现循环三次,程序会打开三个 Excel 窗口;
那么也就是说,在多次处理文件中,App.books.open 方式打开可以控制在一个 excel 窗口,Book 方式则会打开多个窗口。
答主的解答给了我思路,实际两个方法都能在打开后关闭 excel
两个方法都是通过 app 建立连接后打开表格操作的,所以只要将表格的 app 连接关闭就可以正常关闭 excel 了
Book:
wb = xw.Book(filename)
sht = wb.sheets[sheename]
sht.range(row)=11
wb.save()
wb.app.quit()