在python中带有两个按钮的GUI

时间:2019-11-15 13:40:01

标签: python user-interface tkinter

我是python的初学者。我的代码有小问题。我正在尝试用两个按钮创建GUI,这些按钮将确定文件的路径。

如果我选择单词的路径,则会遇到第一个错误-Microsoft Word',“抱歉,我们找不到您的文件。它是被移动,重命名还是删除了?但是它读取值。

第二个问题是全局变量(Doc和Book)。关闭GUI代码后继续...但是出现下一个错误:“ doc”未定义

如果没有GUI代码,效果很好。

请帮助。谢谢 我的代码在这里:

from win32com import client
import re
from docx import Document
import win32com.client as win32
import pandas as pd
import os
import docx                                                      
import openpyxl
from openpyxl import load_workbook
import comtypes.client
import os
import time
import tkinter as tk
from tkinter import filedialog


excel = client.Dispatch("Excel.Application")
word = win32.gencache.EnsureDispatch("Word.Application")

time.sleep(1)

root= tk.Tk()
root.geometry("500x500")
tk.Label(root, text="Macro", bg="goldenrod", font="bold").pack()
tk.Label(root, text="").pack()

def getWord():
    global doc
    import_file_path2 = filedialog.askopenfilename()
    doc = word.Documents.Open(import_file_path2)

def getExcel():
    global book
    import_file_path = filedialog.askopenfilename()
    book = excel.Workbooks.Open(import_file_path)

tk.Button(root, text="Set Excel path", bg="SkyBlue1",command=getExcel).pack()
tk.Label(root, text="").pack()
tk.Button(root, text="Set Word path", bg="SkyBlue1", command=getWord).pack()
root.mainloop()


#doc = word.Documents.Open(r"C:\Users\Mch0010\Desktop\TEST _MAKRO\Testovaci_verze.docm")
doc.visible = True

time.sleep(1)
word.Run("Normal.Module1.TablesDeletespecificrange")
time.sleep(1)

time.sleep(1)
sheet = book.Worksheets(1)
sheet2 = book.Worksheets(1)
time.sleep(1)

Bookmark1 = excel.Sheets("Macro").Range("B17").value
Bookmark2 = excel.Sheets("Macro").Range("B18").value
Bookmark3 = excel.Sheets("Macro").Range("B19").value
Bookmark4 = excel.Sheets("Macro").Range("B20").value
Bookmark5 = excel.Sheets("Macro").Range("B21").value
Bookmark6 = excel.Sheets("Macro").Range("B22").value
time.sleep(1)

range1 = excel.Sheets("Macro").Range("A17").value
range2 = excel.Sheets("Macro").Range("A18").value
range3 = excel.Sheets("Macro").Range("A19").value
range4 = excel.Sheets("Macro").Range("A20").value
range5 = excel.Sheets("Macro").Range("A21").value
range6 = excel.Sheets("Macro").Range("A22").value
time.sleep(1)

x = sheet.Range(range1).copy
rng=doc.Bookmarks(Bookmark1).Range.PasteExcelTable(False, False, False)
time.sleep(1)
x2 = sheet2.Range(range2).copy
rng2=doc.Bookmarks(Bookmark2).Range.PasteExcelTable(False, False, False)
time.sleep(1)
x3 = sheet2.Range(range3).copy
rng3=doc.Bookmarks(Bookmark3).Range.PasteExcelTable(False, False, False)
time.sleep(1)

word.Run("Normal.Module2.SetTableToFitToWindow")



word.ActiveDocument.Save()
doc.Close(False)
word.Application.Quit()

0 个答案:

没有答案