私は一般的にPythonとプログラミングに慣れていません。私は、Excelからデータをインポートし、分析して、DataFrameから新しいデータを別のExcelファイルにエクスポートする、作成したコード用のGUIを構築しようとしています。私は以前にこのコードを使用し、今私は、彼らは、ファイルを保存したいユーザーを尋ねるプロンプトが必要です。tkinterを使用してDataFrameをExcelファイルに保存するようにユーザーに促す方法はありますか?
writer = pd.ExcelWriter("Results.xlsx", engine="xlsxwriter")
data.to_excel(writer, index=False, sheet_name="Results")
worksheet = writer.sheets["Results"]
writer.save()
残念ながら、私はasksaveasfilenameを使用する場合、それは新しいExcelファイルを保存するために取得することはできませんが。ファイル保存をテストするために私が使ってきたことは次のとおりです。
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()
私は何か助けていただきありがとうございます。ありがとう!
編集:私はmode
オプションがあるべきではありません
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