excel文件打开,会遇到两种不通的场景:excel文件还没有打开,直接打开操作
文件一定打开,需要脚本获取到已打开的文件,然后再操作
【1】直接打开
import win32com.client as win32
xl_app = win32.gencache.EnsureDispatch("Excel.Application")
注意:如果没有打开任何的excel文件,它会新建一个application;如果已经打开,就不会新开一个application。因此,使用结束后,如果释放了这个application,就会把之前打开的其他文件也关闭了,这个关闭的时候需要注意
【2】获取已经打开的excel的对象,不用重复打开
import win32com.client as win32
xl_app = win32.gencache.EnsureDispatch("Excel.Application")
file_name = "test.xlsx"
already_open = 0
for wb in xl_app.Workbooks:
if(sb.Name == file_name):#wb.Name只返回文件的名字,不包含路径
my_wb= wb#获取已打开的文件的workbook的对象
already_open =1
break
if(already_open==0):#需要新打开文件
my_wb = xl_app.Workbooks.Open(file_name)
第二种方法在调试的时候经常会用到,尤其是需要不停调整excel内容的时候,免去了反复打开关闭,提高了效率
备注:如果本文有帮到你,欢迎点赞