python打开excel文件的2种方法(基于win32com)

liftword5个月前 (12-05)技术文章42

excel文件打开,会遇到两种不通的场景:

  1. excel文件还没有打开,直接打开操作
  2. 文件一定打开,需要脚本获取到已打开的文件,然后再操作

【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内容的时候,免去了反复打开关闭,提高了效率


备注:如果本文有帮到你,欢迎点赞