windows平台使用win32替换word中的文字

用python的win32com模块替换word中的文字搞定批量打印奖状

windows_modify_world_text.py

# 参考 用python的win32com模块替换word中的文字搞定批量打印奖状
# 

# -*- coding: utf-8-*-

import win32com
from win32com.client import Dispatch, constants

#模板文件保存路径,此处使用的是绝对路径,相对路径未测试过
template_path = 'C:\Users\yely\Desktop\jiangzhuang\print.doc'
#另存文件路径,需要提前建好文件夹,不然会出错
store_path = 'C:\Users\yely\Desktop\jiangzhuang\list\\'
#模板中需要被替换的文本。   u''中的u表示unicode字符,用于中文支持
NewStr = u'小二'

#启动word
w = win32com.client.Dispatch('Word.Application')
# 或者使用下面的方法,使用启动独立的进程:
# w = win32com.client.DispatchEx('Word.Application')

# 后台运行,不显示,不警告
w.Visible = 0
w.DisplayAlerts = 0
# 打开新的文件
doc = w.Documents.Open( FileName = template_path )
# worddoc = w.Documents.Add() # 创建新的文档

# 正文文字替换
w.Selection.Find.ClearFormatting()
w.Selection.Find.Replacement.ClearFormatting()

#名单
lst = [u'张三', u'李四', u'王五']

#迭代替换名字,并以名字为名另存文件
for i in lst:
    OldStr, NewStr = NewStr, i
    w.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)
    doc.SaveAs(store_path + i +'.doc')
    #doc.PrintOut()     直接打印,未测试

doc.Close()
w.Documents.Close()
w.Quit()

你可能感兴趣的:(windows平台使用win32替换word中的文字)