python - 如何将我的所有 Treeview 数据以及特定数据保存在不同的 Excel 文件中?
问题描述
我正在尝试将树视图的数据保存在不同的 Excel 文件中,实际上我的代码正在工作,每次我想保存它时都在同一个 Excel 文件中更新我的数据,所以我想要保存在不同的文件中。我的意思是,当我按下保存按钮时,它会显示“我想将其保存在计算机中的哪个位置”以及“给该文件起什么名称”,然后只显示一条消息“已成功保存”或“您没有选择任何数据”为了节省”。这是我将数据保存在同一文件中的代码:
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()
解决方案
这样做并不难,你必须使用filedialog
from tkinter
:
from tkinter import filedialog, messagebox
然后替换excel_name
为:
excel_name = filedialog.asksaveasfilename(title='Save location',defaultextension=[('Excel','*.xlsx')],filetypes=[('Excel','*.xlsx')])
这应该会弹出一个文件对话框,询问您保存文件的位置,然后逻辑将文件保存在返回的位置。您可以使用 使这一点变得更好messagebox
,例如:
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
虽然我不确定是否excel_name
会''
或'/'
每次用户关闭时,使用print(excel_name)
并关闭框,然后if
使用打印出来的任何内容进行制作。
更多关于使用 tkinter 的 filedialog:Tkinter Dialogs — Python 3.9.2 文档
推荐阅读
- python - Python - x 轴标签不与刻度线对齐
- javascript - 无法在 Javascript 中检测到 F11 按键
- c# - 如何在 zip 文件中设置密码
- javascript - 发出护照Oauth github请求时的GET,HEAD响应
- node.js - 如何使用 Node JS 在 Parse 中插入记录?
- android - MediaStore.Images.Media.getBitmap 为 uri 返回 null
- python - ArangoDBs python 码头工人
- wordpress - 博客网站如何知道网站是否可以使用 AMP 计算
- docusignapi - DocuSign 标准帐户 - 集成密钥
- android - 将焦点转移到该组件时更改 ImageView 或 Button 的不透明度