它相当于一个桥梁,连接python语言和c语言。其他操作excel的模块也很多,比如xlwt、xwings。但是win32com功能更强大,可以操作word、调用宏等等等。
python2这个模块是pywin32里的,python3我找了很久发现是pypiwin32。
首先假设你的D盘里有个hel.xlsm的excel文件,后缀xlsm含义是改文件里带宏,假设这个宏名叫“每日操作”。至于宏这些东西是一套c语言基础的程序,可以用来代替手动操作excel。具体以后可能会更新。
#!/usr/bin/env python
# -*- coding: utf- -*-
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 = #不跳出来。
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[])):
sht.Cells(i + , j + ).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 =
xlBook = xlApp.Workbooks.Open(file_path,False)
xlBook.Application.Run(VBA) #宏
xlBook.Close(True)
xlApp.quit()
操作
results=((,,),(,,),(,,)) #这是要填入的数据,一个3*3元组
file_path="D:\hel.xlsm" #文件
sheet_name="我还在想"
VBA="每日操作"
excel_open(file_path,results,sheet_name)
useVBA(VBA)