如何在Python Tkinter窗口中使用tksheet加载及保存CSV文件
在Tkinter中使用tksheet加载和保存CSV文件
前提准备
先安装tksheet组件:
pip install tksheet
完整示例代码
下面是包含加载、保存功能的完整Tkinter窗口示例:
import tkinter as tk from tkinter import filedialog import tksheet import csv def load_csv(): # 弹出文件选择对话框,选择CSV文件 file_path = filedialog.askopenfilename(filetypes=[("CSV Files", "*.csv")]) if not file_path: return # 读取CSV内容 with open(file_path, "r", encoding="utf-8") as f: reader = csv.reader(f) # 把CSV内容转为列表格式 csv_data = list(reader) # 将数据设置到tksheet中 sheet.set_sheet_data(csv_data) def save_csv(): # 获取tksheet中的所有数据 sheet_data = sheet.get_sheet_data() if not sheet_data: return # 弹出保存文件对话框 file_path = filedialog.asksaveasfilename(defaultextension=".csv", filetypes=[("CSV Files", "*.csv")]) if not file_path: return # 将数据写入CSV文件 with open(file_path, "w", encoding="utf-8", newline="") as f: writer = csv.writer(f) writer.writerows(sheet_data) # 创建主窗口 root = tk.Tk() root.title("tksheet CSV 操作示例") # 创建操作按钮框架 btn_frame = tk.Frame(root) btn_frame.pack(pady=5) load_btn = tk.Button(btn_frame, text="加载CSV", command=load_csv) load_btn.grid(row=0, column=0, padx=5) save_btn = tk.Button(btn_frame, text="保存CSV", command=save_csv) save_btn.grid(row=0, column=1, padx=5) # 创建tksheet组件 sheet = tksheet.Sheet(root) sheet.pack(expand=True, fill="both") root.mainloop()
关键代码说明
加载CSV:
- 用
filedialog.askopenfilename获取用户选择的CSV文件路径 - 通过
csv.reader读取文件内容,转换为二维列表 - 调用
tksheet的set_sheet_data()方法,将列表数据传入即可填充表格
- 用
保存CSV:
- 调用
tksheet的get_sheet_data()方法,获取表格中的所有数据(二维列表格式) - 用
filedialog.asksaveasfilename获取保存路径 - 通过
csv.writer的writerows()方法,将二维列表数据写入CSV文件
- 调用
内容的提问来源于stack exchange,提问作者ragardner
相关产品推荐
相关产品推荐

