Python如何使用win32com.client
在网上搜索的时候,经常看到两种打开方式: dispatch和EnsureDispatch
import win32com.client as win32
xl_dis = win32.Dispatch("Excel.Application")
import win32com.client as win32
xl_ens = win32.gencache.EnsureDispatch("Excel.Application")
两种方式的差别参见:
#创建
#word
w = win32com.client.Dispatch("Word.Application")
w = win32com.client.DispatchEx("Word.Application")#使用启动独立的进程
#excel
xlApp = win32com.client.Dispatch("Excel.Application")
#后台运行, 不显示, 不警告
w.Visible = 0;
w.DisplayAlerts = 0;
#打开新的文件
#word
doc = w.Documents.Open(FileName)
#new_doc = w.Documents.Add() #创建新的文档
#excel
xlBook = xlApp.Workbooks.Open(FileName)
#new_xlBook = xlApp.Workbooks.Add() #创建新的工作簿
#插入文字
#word
myRange = doc.Range(0, 0)
myRange.InsertBefore("hello from Python")
#excel
#使用样式
wordStyle = myRange.Select()
wordStyle.Style = constants.wdStyleHeading1
#正文文字替换
w.Selection.Find.ClearFormatting()
w.Selection.Find.Replacement.ClearFormatting()
w.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)
#表格操作
#word
doc.Tables[0].Rows[0].Cells[0].Range.Text = "hello world Python"
worddoc.Tables[0].Rows.Add() #增加一行
#excel
#获取
_sheet = xlBook.Worksheets(sheet)
_sheet.Cell(row, col).Value
#设置
_sheet = xlBook.Worksheets(sheet)
_sheet.Cells(row, col).Value = values
#范围操作
_sheet = xlBook.Worksheets(sheet)
_sheet.Range(_sheet.Cell(row1, col1), _sheet.Cell(row2, col2)).Value
#添加图片
#excel
_sheet = xlBook.Worksheets(sheet)
_sheet.Shapes.AddPicture(picturename, 1, 1, Left, Top, Width, Height)
#copy 工作簿
sheets = xlBook.Worksheets
sheets(1).Copy(None, sheets(1))
#转换为html
#word
wc = win32com.client.constants
w.ActiveDocument.WebOptions.RelyOnCSS = 1
w.ActiveDocument.WebOptions.OptimizeForBrowser = 1
w.ActiveDocument.WebOptions.BrowserLevel = 0 # constants.wdBrowserLevelV4
w.ActiveDocument.WebOptions.OrganizeInFolder = 0
w.ActiveDocument.WebOptions.UseLongFileNames = 1
w.ActiveDocument.WebOptions.RelyOnVML = 0
w.ActiveDocument.WebOptions.AllowPNG = 1
w.ActiveDocument.SaveAs(FileName, FileFormat = wc.wdFormatHTML)
#打印
doc.PrintOut()
#保存
#excel
xlBook.SaveAs(FileName)#另存为
xlBook.Save()
#关闭
#word
#doc.Close()
w.Documents.Close(wc.wdDoNotSaveChanges)
w.Quit()
#excel
xlBook.Close(SaveChange = 0)
xlBook.Quit()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示