第二章 Python10分钟入门
【2.1】:PyCharm社区版配置Anaconda开发环境
【2.2】:Python基础知识及正则表达式入门
第三章 Python操作Excel
【3.1】:xlrd 使用教程 读取 操作Excel
【3.2】:xlwt 使用教程 写入 操作Excel
【3.3】:xlutils 使用教程 修改 操作Excel
【3.4】:xlwings 使用教程 读取 写入 修改 操【作Excel
【3.5】:openpyxl 使用教程 读取 写入 修改 操作Excel
【3.6】:xlswriter 使用教程 读取 写入 修改 操作Excel
【3.7】:win32com 使用教程 读取 写入 修改 操作Excel
【3.8】:pandas 使用教程 读取 写入 修改 操作Excel
第四章 Python操作word
【4.1】:win32com 使用教程 操作word
【4.2】:python-docx 使用教程 操作word
第五章 Python操作ppt
【5.1】:win32com 使用教程 操作复制ppt PowerPoint
【5.2】:python-pptx 使用教程 操作ppt PowerPoint 添加文字 形状图表
win32com 模块主要为 Python 提供调用 windows 底层组件对 word 、Excel、PPT 等进行操作的功能,只能在 Windows 环境下使用,并且需要安装 office 相关软件才行(WPS也行)。
使用 win32com 模块主要是因为 Python 针对 word 文档操作的第三方库相对较少并且功能较弱,Python 有针对 .docx 后缀文件的第三方库如 python-docx、pydocx等等,但是没有针对 .doc 和 .wps 的第三方库,所以这里就只能使用 win32com 模块。
几个重要概念:
微软官方文档:https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word?view=word-pia
pip install pypiwin32
由于我已经安装过了,所以提示已经安装:
import win32com
from win32com.client import Dispatch, constants
import os
# 获取当前脚本路径
def getScriptPath():
nowpath = os.path.split(os.path.realpath(__file__))[0]
print(nowpath)
return nowpath
# 4.1.2 win32com操作word
def fun4_1_2():
word = Dispatch('Word.Application')
# 或者使用下面的方法,使用启动独立的进程:
# word = DispatchEx('Word.Application')
# 如果不声明以下属性,运行的时候会显示的打开word
word.Visible = 1 # 后台运行
word.DisplayAlerts = 0 # 不显示,不警告
# doc = word.Documents.Add() # 创建新的word文档
doc = word.Documents.Open(getScriptPath() + "\\4. win32com测试.docx") # 打开一个已有的word文档
#读取内容
# data = doc.paragraphs[0].text
# print(data)
# 在文档开头添加内容
myRange1 = doc.Range(0, 0)
myRange1.InsertBefore('Hello word')
# 在文档末尾添加内容
myRange2 = doc.Range()
myRange2.InsertAfter('Bye word')
# 在文档i指定位置添加内容
i = 0
myRange3 = doc.Range(0, i)
myRange3.InsertAfter("what's up, bro?")
# doc.Save() # 保存
doc.SaveAs(getScriptPath() + "\\new.docx") # 另存为
doc.Close() # 关闭 word 文档
word.Quit() # 关闭 office
if __name__ == '__main__':
fun4_1_2()
程序示例:
import win32com
from win32com.client import Dispatch, constants
import os
# 获取当前脚本路径
def getScriptPath():
nowpath = os.path.split(os.path.realpath(__file__))[0]
print(nowpath)
return nowpath
# 4.1.3 win32com转换word格式
def fun4_1_3():
from win32com import client as wc
word = Dispatch("Word.Application")
word.Visible = 0 # 后台运行,不显示
word.DisplayAlerts = 0 # 不警告
doc = word.Documents.Open(getScriptPath() + "\\4. win32com测试.docx") # 打开一个已有的word文档
doc.SaveAs(getScriptPath() + "\\create_new.pdf", 17) # txt=4, html=10, docx=16, pdf=17
doc.Close()
word.Quit()
if __name__ == '__main__':
# fun4_1_2()
fun4_1_3()
执行效果:
以上模块功能可能没列举全,大家有什么希望的操作可以直接留言,我收到留言后会增加相关操作示例(若有),并对文章进行更新,谢谢大家!
返回《Python办公自动化之Word、Excel、PPT理论与实践》课程目录