它相當于一個橋梁,連接配接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)