Python 如何在不同的excel文件中保存所有我的Treeview数据和特定数据?
我试图将我的treeview数据保存在不同的excel文件中,事实上,每次我想要保存数据时,我的代码都会更新同一excel文件中的数据,所以我想要的是保存在不同的文件中。我的意思是,当我按下“保存”按钮时,它会显示“我想在我的计算机中保存它的位置”以及“给该文件取什么名称”,然后只显示一条消息“保存成功”或只是“您没有选择任何要保存的数据”。这是我将数据保存在同一文件中的代码:Python 如何在不同的excel文件中保存所有我的Treeview数据和特定数据?,python,python-3.x,excel,tkinter,treeview,Python,Python 3.x,Excel,Tkinter,Treeview,我试图将我的treeview数据保存在不同的excel文件中,事实上,每次我想要保存数据时,我的代码都会更新同一excel文件中的数据,所以我想要的是保存在不同的文件中。我的意思是,当我按下“保存”按钮时,它会显示“我想在我的计算机中保存它的位置”以及“给该文件取什么名称”,然后只显示一条消息“保存成功”或只是“您没有选择任何要保存的数据”。这是我将数据保存在同一文件中的代码: def save(): cols = ['ID CARD','NAME','SURNAME', 'DATE']
def save():
cols = ['ID CARD','NAME','SURNAME', 'DATE']
path = 'read.csv'
excel_name = 'newfile.xlsx'
lst = []
with open(path, "w", newline='') as myfile:
csvwriter = csv.writer(myfile, delimiter=',')
for row_id in mytree.get_children():
row = mytree.item(row_id,'values')
lst.append(row)
lst = list(map(list,lst))
lst.insert(0,cols)
for row in lst:
csvwriter.writerow(row)
writer = pd.ExcelWriter(excel_name)
df = pd.read_csv(path)
df.to_excel(writer,'sheetname')
writer.save()
要做到这一点并不难,您必须使用tkinter中的filedialog: 然后将excel_名称替换为: 这将弹出一个文件对话框,询问您保存文件的位置,然后逻辑将文件保存到返回的位置。您可以使用messagebox使这一点变得更好,如: 虽然我不确定每次用户关闭时excel\u name是否为或“/”,但请使用printexcel\u name并关闭该框,然后使用打印出来的内容创建if
关于使用tkinter的filedialog的更多信息:似乎需要循环查找要创建的文件数。这里有很多关于vba循环和循环的问答,所以请使用该结构编辑代码。请只问一个问题,无论是创建多个EXCEL还是修复treeview搜索。@SolarMike谢谢,我会搜索更多。@CoolCloud我编辑了buddy。谢谢,伙计,我也得到了一个与你类似的代码,我只是不知道如何将它放在我的函数中,而且我遇到了错误,现在我更好地理解了解决方案。非常感谢。
from tkinter import filedialog, messagebox
excel_name = filedialog.asksaveasfilename(title='Save location',defaultextension=[('Excel','*.xlsx')],filetypes=[('Excel','*.xlsx')])
excel_name = filedialog.asksaveasfilename(title='Save location',defaultextension=[('Excel','*.xlsx')],filetypes=[('Excel','*.xlsx')])
if not excel_name or excel_name == '/': # If the user closes the dialog without choosing location
messagebox.showerror('Error','Choose a location to save')
return # Stop the function