美文网首页
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