以下是一个示例代码,其中包含两个按钮,一个用于导入 CSV 文件,另一个用于查看 CSV 文件内容:

import tkinter as tk
import csv

class CSVViewer(tk.Frame):
    def __init__(self, master):
        super().__init__(master)
        self.master = master
        self.master.title('CSV Viewer')
        
        # 创建导入 CSV 文件的按钮
        self.import_button = tk.Button(self.master, text='Import CSV', command=self.import_csv)
        self.import_button.pack()
        
        # 创建查看 CSV 文件内容的按钮
        self.view_button = tk.Button(self.master, text='View CSV', command=self.view_csv)
        self.view_button.pack()
        
        self.csv_data = None  # 用于存储导入的 CSV 数据
    
    def import_csv(self):
        # 弹出文件选择对话框
        file_path = tk.filedialog.askopenfilename(filetypes=[('CSV Files', '*.csv')])
        if file_path:
            # 读取 CSV 文件并保存数据
            with open(file_path, 'r') as f:
                reader = csv.reader(f)
                self.csv_data = list(reader)
    
    def view_csv(self):
        if self.csv_data:
            # 创建新的窗口用于显示 CSV 数据
            view_window = tk.Toplevel(self.master)
            view_window.title('CSV Viewer')
            
            # 创建表格用于显示 CSV 数据
            for i, row in enumerate(self.csv_data):
                for j, item in enumerate(row):
                    tk.Label(view_window, text=item).grid(row=i, column=j)
        else:
            # 如果没有导入 CSV 数据,弹出错误消息框
            tk.messagebox.showerror('Error', 'No CSV data imported')

if __name__ == '__main__':
    root = tk.Tk()
    app = CSVViewer(root)
    app.pack()
    root.mainloop()

该代码中,CSVViewer 类继承自 tk.Frame,并包含 import_csvview_csv 两个方法,分别用于导入 CSV 文件和查看 CSV 文件内容。在 import_csv 方法中,通过 tk.filedialog.askopenfilename 弹出文件选择对话框,读取选中的 CSV 文件,并将数据存储在 self.csv_data 中。在 view_csv 方法中,如果已经导入了 CSV 数据,则创建一个新的窗口用于显示 CSV 数据,通过嵌套 tk.Label 将每个 CSV 数据项放置在表格中展示。

if __name__ == '__main__': 中,创建 tk.Tk 实例并将其传递给 CSVViewer 类,然后启动主循环。

Python Tkinter CSV 查看器:导入和显示 CSV 数据

原文地址: https://www.cveoy.top/t/topic/n2tf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录