如何在Tkinter的Treeview小部件中打开Excel电子表格?
Excel电子表格包含一组以行和列形式存储的信息。我们可以使用**Treeview**小部件在Tkinter应用程序中显示和使用电子表格数据。Tkinter中的Treeview小部件帮助用户以表格形式添加和操作数据。但是,为了分析和操作大量数据,Python提供了**Pandas**库,该库提供了许多内置函数和方法来执行数据分析。
在本例中,我们将按照以下步骤在Tkinter中显示Excel数据:
导入所需的库,例如**Numpy、Pandas**和**filedialog**。
添加菜单栏,以提示用户从资源管理器中打开文件。
添加命令并定义函数**open_file()**,使其只接受资源管理器中的**.xlsx**文件。
创建一个**Treeview**小部件。
通过将列数据转换为列表,在**Treeview**小部件中添加列。
迭代列以查找给定数据中的所有标题。
可以通过将给定数据帧转换为NumPy对象来识别行。转换后,我们可以使用列表方法将其转换为列表。
迭代所有行,并将行按顺序插入树中。
示例
# Import the required libraries
from tkinter import *
from tkinter import ttk, filedialog
import numpy
import pandas as pd
# Create an instance of tkinter frame
win = Tk()
# Set the size of the tkinter window
win.geometry("700x350")
# Create an object of Style widget
style = ttk.Style()
style.theme_use('clam')
# Create a Frame
frame = Frame(win)
frame.pack(pady=20)
# Define a function for opening the file
def open_file():
filename = filedialog.askopenfilename(title="Open a File", filetype=(("xlxs files", ".*xlsx"),
("All Files", "*.")))
if filename:
try:
filename = r"{}".format(filename)
df = pd.read_excel(filename)
except ValueError:
label.config(text="File could not be opened")
except FileNotFoundError:
label.config(text="File Not Found")
# Clear all the previous data in tree
clear_treeview()
# Add new data in Treeview widget
tree["column"] = list(df.columns)
tree["show"] = "headings"
# For Headings iterate over the columns
for col in tree["column"]:
tree.heading(col, text=col)
# Put Data in Rows
df_rows = df.to_numpy().tolist()
for row in df_rows:
tree.insert("", "end", values=row)
tree.pack()
# Clear the Treeview Widget
def clear_treeview():
tree.delete(*tree.get_children())
# Create a Treeview widget
tree = ttk.Treeview(frame)
# Add a Menu
m = Menu(win)
win.config(menu=m)
# Add Menu Dropdown
file_menu = Menu(m, tearoff=False)
m.add_cascade(label="Menu", menu=file_menu)
file_menu.add_command(label="Open Spreadsheet", command=open_file)
# Add a Label widget to display the file content
label = Label(win, text='')
label.pack(pady=20)
win.mainloop()输出
如果运行上述代码,它将显示一个窗口,该窗口顶部包含一个菜单,用于打开Excel文件。

打开文件后,它将显示窗口中的电子表格数据。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP