python3,用win32com操作excel及其宏

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37408031/article/details/78505747

它相当于一个桥梁,连接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)
展开阅读全文

没有更多推荐了,返回首页