对word进行另存为

  1. 使用python对word进行操作时,需要先引用win32com的包
import win32com.client as win32
word = win32.gencache.EnsureDispatch('Word.Application')
  1. 之后需要启动word应用对象
#此处是定义对word操作是否可视化,如果为True,则会出现打开word文件,测试一下即可
word.Visible = False

#打开指定的word文件
doc = word.Documents.Open(r'D:\Python_Project\合并word文档\另存为\关羽.docx')

Python word 另存为 python另存为在哪_Python


3. 将此文件另存为其他名称

doc.SaveAs(r'D:\Python_Project\合并word文档\另存为\关羽_另存为.docx')

#第2步里打开了 关羽.docx ,此时需要将其关闭
doc.Close()

Python word 另存为 python另存为在哪_pycharm_02

【另存为】部分完整代码如下:

import os
#输入输出函数,用来获取目录路径
import win32com.client as win32
word = win32.gencache.EnsureDispatch('Word.Application')

#启动word对象应用
word.Visible = True

doc = word.Documents.Open(r'D:\Python_Project\合并word文档\需合并文档\关羽.docx')

doc.SaveAs(r'D:\Python_Project\合并word文档\另存为\关羽_另存为.docx')

doc.Close()

合并word

事件背景是,前段时间搬工位,每个同事都需要打印自己的名称和工位,所以每个人都会有一份word,此时就可以通过合并word生成一份所有人的信息,打印一次即可。

  1. 首先准备好需要进行合并的word文档

    文档里的内容基本一致,只有姓名、字以及个人照
  2. 将路径下的每个文件打印成列表
import os

files = []
for filename in os.listdir(path): #listdir可以将路径下的文件打印成列表
    filename = os.path.join(path,filename)
    files.append(filename)
  1. 将文件拼接成新文件
#获取目录下所有文件的路径
output = word.Documents.Add()
#新建空的word文档,
for file in files:
    output.Application.Selection.InsertFile(file)
#拼接文档
doc = output.Range(output.Content.Start, output.Content.End)
#获取合并后文档的内容
output.SaveAs('D://Python_Project//合并word文档//result.docx') #保存
output.Close()#关闭
  1. 可得到结果word文件

【word拼接】部分完整代码如下:

import os
#输入输出函数,用来获取目录路径
import win32com.client as win32
word = win32.gencache.EnsureDispatch('Word.Application')

#启动word对象应用
word.Visible = False #是否可视化,如果改为True,则会在电脑上频繁出现word文档界面
path = r'D:\Python_Project\合并word文档\需合并文档'

#存放文件路径
files = []
for filename in os.listdir(path):
    filename = os.path.join(path,filename)
    files.append(filename)
#获取目录下所有文件的路径
output = word.Documents.Add()
#print(output)

#新建空的word文档,
for file in files:
    output.Application.Selection.InsertFile(file)

#拼接文档
doc = output.Range(output.Content.Start, output.Content.End)

#获取合并后文档的内容
output.SaveAs('D://Python_Project//合并word文档//result.docx') #保存
output.Close()#关闭