Python中win32com模块的使用
作者:一ye残雪 发布时间:2021-01-22 11:46:52
标签:Python,win32com
0 前言
安装:
pip install pypiwin32
1 Excel的API
import win32com.client as win32
#创建
xlApp = win32.Dispatch("Excel.Application")
xlApp = win32.DispatchEx("Excel.Application")#使用启动独立的进程
#后台运行, 不显示, 不警告
xlApp .Visible = 0;
xlApp DisplayAlerts = 0;
#打开新的文件
xlBook = xlApp.Workbooks.Open(FileName)
#创建新的工作簿
new_xlBook = xlApp.Workbooks.Add()
#获取
xlSheet = xlBook.Worksheets('Sheet1')
a = xlSheet .Cell(11, 5).Value # (row, col) 都是从1开始
xlSheet .Cells(11, 5).Value = 2 # (row, col) 都是从1开始
#范围操作
xlSheet.Range(xlSheet.Cell(11, 5), xlSheet.Cell(13, 6)).Value
#添加图片
xlSheet.Shapes.AddPicture(picturename, 1, 1, Left, Top, Width, Height)
#copy 工作簿
xlSheet2.Copy(None, xlSheet)
#保存
xlBook.SaveAs(FileName)#另存为
xlBook.Save()
#退出
xlBook.Close()
xlBook.Quit()
1.1 Excel示例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import win32com.client as win32
if __name__ == "__main__":
''' 启动Excel程序并打开文件 '''
app = win32.DispatchEx('Excel.Application') # 启动独立的进程,关闭时不影响其他文件
app.Visible = False # 不打开excel界面
app.DisplayAlerts = False # 不显示警告信息
wb = app.Workbooks.Open(r'D:\6_SoftwareTest\xml\empty_book.xlsx')
# wb = app.Workbooks.Add() #创建新文件
''' 处理worksheet '''
ws = wb.Worksheets('Sheet1')
ws.Cells(11, 5).Value = 2 # Cells(row,col) 先行后列 Cells(11,5)就指的是 E11单元格
ws.Cells(11, 5).offset(3, 2).Value = 1 # E11 偏移后 到了 F13,移动(3-1,2-1)
ws.Range('D10').value = 15 # 这里指对D10写入数据 15
ws1 = wb.Worksheets
ws1.Copy(None, ws)
''' 保存并关闭Excel文件,退出程序 '''
wb.Save()
# wb.SaveAs(path)
wb.Close()
app.Quit()
2 Word的API
import win32com.client as win32
#创建
wdApp = win32.Dispatch("Word.Application")
wdApp = win32.DispatchEx("Word.Application")#使用启动独立的进程
#后台运行, 不显示, 不警告
wdApp.Visible = 0;
wdApp.DisplayAlerts = 0;
#打开新的文件
doc = wdApp.Documents.Open(FileName)
#创建新的文档
new_doc = wdApp.Documents.Add()
#插入文字
myRange = doc.Range(0, 0)
myRange.InsertBefore("hello from Python")
#使用样式
wordStyle = myRange.Select()
wordStyle.Style = constants.wdStyleHeading1
#正文文字替换
wdApp.Selection.Find.ClearFormatting()
wdApp.Selection.Find.Replacement.ClearFormatting()
wdApp.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)
#表格操作
doc.Tables[0].Rows[0].Cells[0].Range.Text = "hello world Python"
doc.Tables[0].Rows.Add() #增加一行
#转换为html
wc = win32.constants
wdApp.ActiveDocument.WebOptions.RelyOnCSS = 1
wdApp.ActiveDocument.WebOptions.OptimizeForBrowser = 1
wdApp.ActiveDocument.WebOptions.BrowserLevel = 0 # constants.wdBrowserLevelV4
wdApp.ActiveDocument.WebOptions.OrganizeInFolder = 0
wdApp.ActiveDocument.WebOptions.UseLongFileNames = 1
wdApp.ActiveDocument.WebOptions.RelyOnVML = 0
wdApp.ActiveDocument.WebOptions.AllowPNG = 1
wdApp.ActiveDocument.SaveAs(FileName, FileFormat = wc.wdFormatHTML)
#打印
doc.PrintOut()
#保存
doc.SaveAs(FileName)#另存为
doc.Save()
#关闭
doc.Close()
wdApp.Quit()
来源:https://blog.csdn.net/u011079613/article/details/118861205


猜你喜欢
- 1.背景在python运行一些,计算复杂度比较高的函数时,服务器端单核CPU的情况比较耗时,因此需要多CPU使用多进程加快速度2.函数要求笔
- 一安装pyinstaller(两种方式)1.通过命令:pip install pyinstaller具体操作:打开pycharm下方的Ter
- 在工作实践和学习中,如何开启 MySQL 数据库的远程登陆帐号算是一个难点的问题,以下内容便是在工作和实践中总结出来的两大步骤,能帮助DBA
- 傅里叶变换图像处理一般分为空间域处理和频率域处理。空间域处理是直接对图像内的像素进行处理。空间域处理主要划分为灰度变换和空间滤波两种形式。灰
- php.ini文件没有参数没有配置正确解决方法:(1) 打开php.ini文件,找到:extension_dir = "./&qu
- 视频观看视频Python 类和对象面向对象编程是编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对象都有的
- 本文实例讲述了JS学习笔记之数组去重实现方法。分享给大家供大家参考,具体如下:操作的数组 let arr=[0,1,23,'1
- SQLPrompt是Sql Server 开发智能提示插件,方便查询表结果,避免了开发人员一个个敲查询语句、执行语句等,下面带大家仔细了解一
- 1、单继承:子类只继承一个父类举例:煎饼果子老师傅在煎饼果子界摸爬滚打几十年,拥有一身精湛的煎饼果子技术,并总结了一套"古法煎饼果
- Payment Card Industry,即支付卡行业,PCI行业表示借记卡、信用卡、预付卡、电子钱包、ATM和POS卡及相关的业务。 P
- 一.Array在Go语言中,数组是一个值类型(value type)所有的值类型变量在赋值和作为参数传递时都将产生一个复制动作如果作为函数的
- 由于新云CMS系统,网站底部“版权信息”字段在数据库中是“文本”类型,有250个字符的限制。想在这里给加网站统计代码,因为字数限制的原因,就
- 1.什么是装饰器?要理解什么是装饰器,您首先需要熟悉Python处理函数的方式。从它的观点来看,函数和对象没有什么不同。它们有属性,可以重新
- 1.嵌入 IFrame(/assets/img/anchor.svg)]()](https://gradio.app/sharing-you
- 使用python来登录asp网站和登录其他网站差不多,只是因为asp页面在每次请求的时候都要带上viewstate,因此使用python来登
- 前言如同艺术家们用绘画让人们更贴切的感知世界,数据可视化也能让人们更直观的传递数据所要表达的信息。我们今天就分享一下如何用 Python 简
- 多线程多线程是个提高程序运行效率的好办法,本来要顺序执行的程序现在可以并行执行,可想而知效率要提高很多。但是多线程也不是能提高所有程序的效率
- 微信小程序与php 实现微信支付的简单实例小程序访问地址:payfee.PHP:include 'WeixinPay.php'
- replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法:string.replace(sub
- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到