美文网首页
word自动生成程序

word自动生成程序

作者: Armlinux | 来源:发表于2021-12-26 11:48 被阅读0次

既excel自动生成程序之后,现在笔者现在发布word自动生成程序。

# 自动word生成器 20211226

from docx import Document
from docx.shared import Inches, Pt
from docx.oxml.ns import qn
from docx.enum.text import WD_ALIGN_PARAGRAPH
import PySimpleGUI as sg

sg.theme('Dark Blue 3')  # please make your windows colorful

frame1_layout = [
            [sg.Text('对象名称', size=(10, 1)),sg.InputText('', key='对象名称', size=(10, 1))],
            [sg.Checkbox('属性1',key='p1', size=(10, 1)),sg.Text('由', size=(5, 1)),sg.InputText('', key='原信息1', size=(10, 1)),sg.Text('变成', size=(5, 1)), sg.InputText('', key='新信息1', size=(10, 1))],
            [sg.Checkbox('属性2',key='p2', size=(10, 1)),sg.Text('由', size=(5, 1)),sg.InputText('', key='原信息2', size=(10, 1)),sg.Text('变成', size=(5, 1)), sg.InputText('', key='新信息2', size=(10, 1))],
            [sg.Checkbox('属性3',key='p3', size=(10, 1)),sg.Text('由', size=(5, 1)),sg.InputText('', key='原信息3', size=(10, 1)),sg.Text('变成', size=(5, 1)), sg.InputText('', key='新信息3', size=(10, 1))],
            ]

layout = [
            [sg.Frame('请核对以下信息', frame1_layout , font='Any 12', title_color='blue')],
            #[sg.FilesBrowse('选择模板文件',file_types=(("xlsx Files", "*.xlsx"),("xls Files", "*.xls"))) , sg.InputText('', key='模板目录', size=(47, 1))],
            #[sg.FolderBrowse('选择输出路径'), sg.InputText('', key='输出目录', size=(47, 1))],
            [sg.Text('文件名', size=(10, 1)), sg.InputText('生成的文件', key='文件名', size=(48, 1)),sg.Text('', size=(10, 1))],
            [sg.Submit('确定'), sg.Cancel('关闭')],
            [sg.Text('版权所有,他用必究!', size=(30, 1), font=('Helvetica', 10), justification='center', key='text2')],
         ]
# 
window = sg.Window('word自动生成工具', layout)
#事件循环
while True:
    event, values = window.read()
    print(event)
    if event == sg.WIN_CLOSED or event == '关闭':     #判断是否点击Cancel按钮
        break
    elif event == '确定' and (values['文件名'] != ''):
        out_path = values['文件名']+'.docx'
        document = Document()
        ##########################################################################
        j=0
        for i in range(3):
            if values['p'+str(i+1)]:
                j=j+1
                if j>1:
                    # 下一页
                    document.add_page_break()
                title=values['对象名称']
                msg1=values['原信息'+str(i+1)]
                msg2=values['新信息'+str(i+1)]
                # 标题
                p=document.add_paragraph()
                p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
                x=p.add_run(title)
                x.font.size = Pt(27.5)
                x.font.name = '宋体' # 思源字体
                x.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
                # 内容
                p=document.add_paragraph()
                x=p.add_run('属性'+str(i+1)+':由'+msg1+'变成'+msg2+'。')
                x.font.size = Pt(10.5)
                x.font.name = '宋体' # 思源字体
                x.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
        if j>0:
            # 保存文档
            document.save(out_path)
            sg.Popup('已保存:'+out_path)
        else:
            sg.Popup('没有选择要修改的属性,所以无文件生成!')
    else:
        sg.Popup('请先设置好模版文件和输出路径。')

    ##########################################################################
window.close()

相关文章

网友评论

      本文标题:word自动生成程序

      本文链接:https://www.haomeiwen.com/subject/tklsqrtx.html