python 合并word文档,实现同一个文件夹下面的word合并成一个word
-- coding:utf-8 --
import win32com.client as win32
import os
def hb_word(path_word, bc_word):
word = win32.gencache.EnsureDispatch(‘Word.Application’)
#启动word对象应用
word.Visible = False
path = path_word
list_word = os.listdir(path)
files = []
for filename in list_word:
filename = os.path.join(path,filename)
files.append(filename)
#新建合并后的文档
output = word.Documents.Add()
jd_pc = 95 / len(files)
jd = 95 / len(files)
for file in files:
print(file)
output.Application.Selection.InsertFile(file)#拼接文档
p1[“value”] = jd
jd = jd_pc + jd
root.update()
#获取合并后文档的内容
doc = output.Range(output.Content.Start, output.Content.End)
output.SaveAs(os.path.join(bc_word, ‘合并.docx’)) #保存
output.Close()
p1[“value”] = 100
root.update()
!/usr/bin/env python
-- coding: utf-8 --
from tkinter import *
from tkinter import ttk, Tk, Frame, Label, LEFT, NO, RIGHT, TOP, BOTTOM, HORIZONTAL, Y, ACTIVE
import tkinter.filedialog, tkinter.messagebox
from tkinter.scrolledtext import ScrolledText, Scrollbar
import os, base64, time, traceback
def center_window(root, width, height):
“”“窗体屏幕居中显示”“”
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
size = ‘%dx%d+%d+%d’ % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
root.geometry(size)
def select_inpath():
“”“选择工程文件目录”“”
folder = tkinter.filedialog.askdirectory()
ent1.delete(“0”, “end”)
ent1.insert(0, folder)
def select_inpath1():
“”“选择工程文件目录”“”
folder = tkinter.filedialog.askdirectory()
ent2.delete(“0”, “end”)
ent2.insert(0, folder)
def ye():
path_word = ent1.get()
path_pdf = ent2.get()
try:
hb_word(path_word, path_pdf)
a = tkinter.messagebox.askokcancel(title=‘出错了’, message=‘导出完成,是否打开文件夹’)
if a:
os.startfile(path_pdf)
except:
tkinter.messagebox.askokcancel(title=‘出错了’, message=traceback.format_exc())
def clear():
“”“清理输入框”“”
ent1.delete(“0”, “end”)
ent2.delete(“0”, “end”)
ent3.delete(“0”, “end”)
text.delete(‘1.0’, ‘end’)
def close():
“”“关闭”“”
root.destroy()
###########################
以下为界面代码
###########################
tmp = open(“tmp.ico”, “wb+”)
tmp.close()
root = Tk()
root.title(‘Word合并 v1.0’)
center_window(root, 740, 180)
root.iconbitmap(‘tmp.ico’)
os.remove(“tmp.ico”)
frm1 = Frame(root)
frm2 = Frame(root)
frm3 = Frame(root)
frm31 = Frame(root)
frm32 = Frame(root)
frm33 = Frame(root)
frm4 = Frame(root)
frm5 = Frame(root)
lab = Label(frm1, font=(“宋体”, 10), text=“选择word路径:”).pack(side=LEFT, expand=NO, fill=None)
ent1 = ttk.Entry(frm1, width=80, font=(“微软雅黑”, 9))
ent1.pack(side=LEFT)
but1 = ttk.Button(frm1, text=‘. . .’, width=6, command=select_inpath)
but1.pack(side=LEFT, padx=10)
frm1.pack(pady=15)
lab = Label(frm2, font=(“宋体”, 10), text=“选择保存路径:”).pack(side=LEFT, expand=NO, fill=None)
ent2 = ttk.Entry(frm2, width=80, font=(‘微软雅黑’, 9))
ent2.pack(side=LEFT)
but2 = ttk.Button(frm2, text=‘. . .’, width=6, command=select_inpath1)
but2.pack(side=LEFT, padx=10)
frm2.pack()
p1 = ttk.Progressbar(frm31, length=700, mode=“determinate”, orient=HORIZONTAL)
p1.grid(row=1, column=1)
frm31.pack(pady=15)
but3 = ttk.Button(frm4, text=‘开 始’, width=8, command=ye)
but3.pack(side=LEFT, padx=50)
but5 = ttk.Button(frm4, text=‘退 出’, width=8, command=close)
but5.pack(side=RIGHT, padx=50)
frm4.pack()
root.mainloop()