python win32com处理word基本操作

1,260 阅读2分钟

简介

Pywin32 是一个用于与 Microsoft Windows 操作系统交互的 Python 扩展模块,它提供了对多个 Windows API 的访问,包括对 Microsoft Office 应用程序(如 Word、Excel、PowerPoint 等)的自动化操作。下面是 Pywin32 处理 Word 的一些优缺点:

优点:

  1. 功能强大:Pywin32 允许您在 Python 中与 Word 进行深度集成,可以实现对 Word 文档的创建、编辑、格式化、内容提取等一系列操作。
  2. 自动化处理:通过 Pywin32,您可以编写脚本来自动化执行 Word 相关的任务,如批量处理文档、生成报告、数据导入等,提高工作效率。
  3. 广泛的支持:Pywin32 提供了对 Word 的广泛支持,允许您访问和操作 Word 的各种对象、属性和方法,以满足特定的需求。
  4. 良好的文档和社区支持:Pywin32 拥有详细的官方文档和活跃的社区支持,您可以轻松地找到示例代码、教程和解决方案,加快开发速度。

缺点:

  1. Windows 平台限定:Pywin32 是一个针对 Windows 平台的扩展模块,因此在其他操作系统上(如 macOS、Linux)无法使用,这限制了其跨平台的能力。
  2. 依赖性:使用 Pywin32 需要安装相应的依赖库和软件,如 Microsoft Office 套件、Windows API 等,这可能增加了部署和配置的复杂性。
  3. 学习曲线:Pywin32 的使用需要一定的学习和熟悉过程,特别是对于那些不熟悉 Windows API 和 COM 编程的开发者来说,上手可能会有一定的难度。

入门

github.com/mhammond/py…

pypi.org/project/pyw…

安装

pip install pywin32

基本使用

from win32com.client import Dispatch, DispatchEx

# #打开word文档
word = client.DispatchEx('kwps.Application')  
# Dispatch()会尝试获取当前运行的实例, DispatchEx()直接创建一个对象实例, 不会影响当前运行的word
# 'Word.Application' office应用程序  'kwps.Application' wps应用程序

# 是否显示
word.Visible = 0
# 是滞警告
word.DisplayAlerts = 0

# 打开现有的 Word 文档
doc = word.Documents.Open('path/to/document.docx')

# 创建新的 Word 文档
doc = word.Documents.Add()

# 读取文档内容
content = doc.Content.Text

# 插入文本
doc.Content.Text = 'Hello, World!'

# 获取段落列表
paragraphs = doc.Paragraphs

# 获取表格列表
tables = doc.Tables

# 插入表格
table = doc.Tables.Add(doc.Range(), 3, 3)

# 插入图片
doc.InlineShapes.AddPicture('path/to/image.jpg')

# 删除段落
paragraphs[0].Range.Delete()

# 设置字体样式
doc.Content.Font.Name = 'Arial'
doc.Content.Font.Size = 12

# 设置段落格式
paragraphs[0].Alignment = win32.constants.wdAlignParagraphCenter

# 设置表格边框样式
table.Borders.Enable = True
table.Borders.InsideLineStyle = win32.constants.wdLineStyleSingle

# 运行宏
word.Run('MacroName')

# 打印文档
doc.PrintOut()

# 保存文档
doc.SaveAs('path/to/save/document.docx')

# 转为pdf
doc.SaveAs('path/to/save/document.pdf', 17)

# 关闭文档
doc.Close()

# 退出 Word 应用程序
word.Quit()

格式转换参数对照表

image.png