You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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:

    1. 用filedialog.askopenfilename获取用户选择的CSV文件路径
    2. 通过csv.reader读取文件内容,转换为二维列表
    3. 调用tksheet的set_sheet_data()方法,将列表数据传入即可填充表格
  • 保存CSV:

    1. 调用tksheet的get_sheet_data()方法,获取表格中的所有数据(二维列表格式)
    2. 用filedialog.asksaveasfilename获取保存路径
    3. 通过csv.writer的writerows()方法,将二维列表数据写入CSV文件

内容的提问来源于stack exchange,提问作者ragardner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:07:06