python3,用win32com操作excel及其宏

xiaoxiao2021-02-28  43

它相当于一个桥梁,连接python语言和c语言。其他操作excel的模块也很多,比如xlwt、xwings。但是win32com功能更强大,可以操作word、调用宏等等等。

python2这个模块是pywin32里的,python3我找了很久发现是pypiwin32。 首先假设你的D盘里有个hel.xlsm的excel文件,后缀xlsm含义是改文件里带宏,假设这个宏名叫“每日操作”。至于宏这些东西是一套c语言基础的程序,可以用来代替手动操作excel。具体以后可能会更新。

#!/usr/bin/env python # -*- coding: utf-8 -*- import win32com from win32com.client import Dispatch, constants

填入数据

def excel_open(file_path,results,sheet_name): xlApp = win32com.client.DispatchEx("Excel.Application") #打开excel操作环境 xlApp.Visible = True #进程可见,False是它暗自进行 xlApp.DisplayAlerts = 0 #不跳出来。 xlBook = xlApp.Workbooks.Open(file_path,False) #打开文件,有时候会有警告框说由外部链接什么的(与里面公式有关),要点是则True,否则False sht = xlBook.Worksheets(sheet_name) #找到要操作的sheet for i in range(len(results)): # sheet数据,日期列格式为date for j in range(len(results[0])): sht.Cells(i + 2, j + 1).Value =results[i][j] #从第二行第二列开始填入数据。 print("WRITE FINISHED") xlBook.Close(True) #关闭该文件,并保存。不保存就是False xlApp.quit() #关闭excel操作环境。

运行宏

def useVBA(VBA): xlApp = win32com.client.DispatchEx("Excel.Application") xlApp.Visible = True xlApp.DisplayAlerts = 0 xlBook = xlApp.Workbooks.Open(file_path,False) xlBook.Application.Run(VBA) #宏 xlBook.Close(True) xlApp.quit()

操作

results=((5,2,1),(7,2,7),(4,0,3)) #这是要填入的数据,一个3*3元组 file_path="D:\hel.xlsm" #文件 sheet_name="我还在想" VBA="每日操作" excel_open(file_path,results,sheet_name) useVBA(VBA)
转载请注明原文地址: https://www.6miu.com/read-1400347.html

最新回复(0)