# 方法一 预加载对象属性和方法,对象可以使用索引,如worksheet.Columns[1]
app = win32com.client.gencache.EnsureDispatch("Excel.Application")
# 方法二 延迟加载(若temp下不存在gen_py),使用索引时 worksheet.Columns(1)
app = win32com.client.Dispatch(application)
# 方法三 总是延迟加载
app = win32com.client.dynamic.Dispatch(application)
如果没有打开任何的excel文件,gencache会新建一个application;如果已经打开,就不会新开一个application。因此,使用结束后,如果释放了这个application,就会把之前打开的其他文件也关闭了,这个关闭的时候需要注意,需要判断excel中是否还有文件被打开 :app.ActiveWorkbook
win32com 文档:http://timgolden.me.uk/pywin32-docs/contents.html
使用win32com最苦恼的就是没有文档,如果你使用 win32.gencache.EnsureDispatch('Excel.Application'),然后找到Temp目录下的gen_py文件,所有COM对象可用的方法都在这里
word,ppt 一样一样的
注意大坑:
1. 不同的打开方式会影响,索引方式,api.方法名大小写
2. wps 和 微软的office 同一个方法返回值可能不同
3. 想看对象都有哪些可用的属性和方法,使用方法一打开
4. 若当前已打开excel,则代码中设置Visible属性为False后,如果调用Add()新建book,Visible失效,需要重新设置,闪屏现象可以通过设置app.ScreenUpdating=False‘缓解’