ventanas tutorial toplevel sirve siguientes para los interfaz hijas grafica fondo eventos etiquetas elementos cuál color atributos agregar python excel python-3.x user-interface tkinter

python - tutorial - ¿Cómo puedo usar tkinter para solicitar a los usuarios que guarden un DataFrame en un archivo de Excel?



toplevel tkinter (1)

No debería haber mode opción de mode . Esto es suficiente:

savefile = asksaveasfilename(filetypes=(("Excel files", "*.xlsx"), ("All files", "*.*") ))

Soy nuevo en Python y la programación en general. Estoy intentando construir una GUI para un código que escribí que importa datos de Excel, realiza algunos análisis y luego exporta los datos nuevos del DataFrame a otro archivo de Excel. Utilicé este código anteriormente, pero ahora necesito un aviso que le pregunte al usuario dónde quiere guardar el archivo:

writer = pd.ExcelWriter("Results.xlsx", engine="xlsxwriter") data.to_excel(writer, index=False, sheet_name="Results") worksheet = writer.sheets["Results"] writer.save()

Lamentablemente, no puedo guardar el nuevo archivo de Excel cuando uso asksaveasfilename. Esto es lo que he estado usando para probar el guardado de archivos:

from tkinter import * from tkinter.filedialog import askopenfilename from tkinter.filedialog import asksaveasfilename from tkinter.messagebox import showerror import pandas as pd class Analysis: def __init__(self, master): self.master = master master.title("Test") self.message = "Select an Excel file to import." self.label_text = StringVar() self.label_text.set(self.message) self.label = Label(master, textvariable=self.label_text) self.button = Button(master, text="Browse", command=self.load_file) self.label.grid(row=0, column=0, columnspan=2, sticky=W) self.button.grid(row=1, column=0, sticky=W) def load_file(self): file = askopenfilename(filetypes=(("Excel files", "*.xlsx"), ("All files", "*.*") )) if file: try: data = pd.read_excel(file,sheetname="Sheet1") #this doesn''t save anything savefile = asksaveasfilename(mode="w",filetypes=(("Excel files", "*.xlsx"), ("All files", "*.*") )) #used this code before writer = pd.ExcelWriter("Results.xlsx", engine="xlsxwriter") data.to_excel(writer, index=False, sheet_name="Results") worksheet = writer.sheets["Results"] writer.save() self.message = "Complete" self.label_text.set(self.message) except: self.message = "Error" self.label_text.set(self.message) showerror("Open Source File", "Failed to import file/n''%s''" % file) return root=Tk() my_gui = Analysis(root) root.mainloop()

Agradezco cualquier ayuda. ¡Gracias!

Editar: lo tengo para trabajar

def load_file(self): file = askopenfilename(filetypes=(("Excel files", "*.xlsx"), ("All files", "*.*") )) if file: try: savefile = asksaveasfilename(filetypes=(("Excel files", "*.xlsx"), ("All files", "*.*") )) data = pd.read_excel(file,sheetname="Sheet1") data.to_excel(savefile + ".xlsx", index=False, sheet_name="Results") self.message = "Complete" self.label_text.set(self.message) except: self.message = "Error. Please try again." self.label_text.set(self.message) showerror("Open Source File", "Failed to import file/n''%s''" % file) return