tkinter展示csv
时间: 2023-06-23 21:59:45 浏览: 217
展示 CSV 文件的一种常见方法是使用 `tkinter` 的 `Treeview` 组件,它可以在表格中显示数据。以下是一个简单的示例代码,可以读取 CSV 文件并将其显示在 `Treeview` 组件中:
```python
import csv
import tkinter as tk
from tkinter import ttk
from tkinter.filedialog import askopenfilename
class CSVViewer(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.tree = ttk.Treeview(self, columns=("column1", "column2", "column3"))
self.tree.heading("#0", text="Index")
self.tree.heading("column1", text="Column 1")
self.tree.heading("column2", text="Column 2")
self.tree.heading("column3", text="Column 3")
self.tree.pack(fill="both", expand=True)
self.load_button = tk.Button(self, text="Load File...", command=self.load_file)
self.load_button.pack()
self.pack(fill="both", expand=True)
def load_file(self):
filename = askopenfilename(filetypes=[("CSV files", "*.csv")])
if filename:
with open(filename, newline="") as file:
reader = csv.reader(file)
next(reader) # Skip header row
for i, row in enumerate(reader):
self.tree.insert("", "end", text=str(i), values=row)
if __name__ == "__main__":
root = tk.Tk()
viewer = CSVViewer(root)
viewer.pack(fill="both", expand=True)
root.mainloop()
```
在这个示例中,我们创建了一个名为 `CSVViewer` 的 `tkinter` 窗口部件。该窗口部件包含一个 `Treeview` 组件和一个按钮,点击按钮会打开一个文件对话框,允许用户选择要打开的 CSV 文件。当用户选择文件时,`load_file` 方法会读取 CSV 文件的内容,并将其插入到 `Treeview` 中。
在 `Treeview` 的构造函数中,我们设置了三个列,每列的名称为 "Column 1"、"Column 2" 和 "Column 3"。在 `load_file` 方法中,我们使用 `csv` 模块的 `reader` 方法读取 CSV 文件的内容,并使用 `Treeview` 的 `insert` 方法将每一行数据插入到表格中。在插入数据时,我们使用 `text` 参数指定行的索引,以便用户可以在表格中看到行号。
你可以根据需要修改这个示例代码,以满足你的需求。例如,你可以根据 CSV 文件的实际列名设置 `Treeview` 的列标题,或者使用不同的列数和列名。
阅读全文