Python使用win32com.client的方法示例
作者:robin2022 发布时间:2021-03-22 14:32:48
标签: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")
两种方式的差别参见:
https://stackoverflow.com/questions/50127959/win32-dispatch-vs-win32-gencache-in-python-what-are-the-pros-and-cons
#创建
#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()
来源:https://www.cnblogs.com/robin2022/p/16317499.html


猜你喜欢
- 本文实例讲述了Python中pandas模块DataFrame创建方法。分享给大家供大家参考,具体如下:DataFrame创建1. 通过列表
- pLSA(probabilistic Latent Semantic Analysis),概率潜在语义分析模型,是1999年Hoffman提
- IE测试通过,FF有点小BUGCls_Leibie.asp代码如下:<% '数据库字段为类属性,添加、删除、修改、操
- 本文为大家分享了Navicat for SQLite导入csv中文数据的具体方法,供大家参考,具体内容如下1.用Notepad++打开csv
- 背景:使用python脚本传递参数在实际工作过程中还是比较常用,以下提供了好几种的实现方式:一、使用sys.argv的数组传入说明:使用sy
- 在ASP中加密方法有对应的解密方法好象不多,现在根据前辈资料整理出在asp中加密与解密函数,根据RSA 算法实现的。什么是RSA?
- 一、先让飞机在屏幕上飞起来吧。(一)实现飞机类class Plane: def __init__(self,fil
- 两种方式:1.IP+SID方式 2.配置链接方式1..IP+SID方式DbHelperOracle.connectionString = s
- 本文实例讲述了Python简单生成随机数的方法。分享给大家供大家参考,具体如下:主要知识点:随机整数:random.randint(a,b)
- 本文主要介绍了MySQL 8.0 驱动与阿里druid版本兼容问题解决,具体如下:注意:这个异常表面druid数据源的版本与MySql 8.
- 直接上例子。import pandas as pd df = pd.DataFrame({'class':['a
- 这是一个很简单的纯CSS相册滑动浏览效果,仅用一个无序列表ul结合简单的CSS就可以实现。原文中介绍的纵向滑动相册的实现方法,但是相比之下个
- 一、word转pdf先安装win32库:pip install pywin32from win32com.client import gen
- 最近业务提了一个周期提醒的功能用到了一些SQL时间函数做个记录获取当前当前日期和时间 NOW()SELECT NOW()结果:使用SQl获取
- modf()方法返回两个项的元组x的整数小数部分。这两个元组具有相同x符号。则返回一个浮点数的整数部分。语法以下是modf()方
- MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING。为了记录动态字符串的实际长度,缓冲区的最大长度,以及每
- 本文介绍ThinkPHP的limit()方法的用法。limit方法可以用于对数据库操作的结果进行取指定范围的条数。即相当于是在mysql查询
- 本文实例讲述了ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法。分享给大家供大家参考。具体实现方法分析如下:首先
- MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Win
- 1、存储过程基本语法: create procedure sp_name() begin ...... end; 2、如何调用: call