Hiển thị dữ liệu Excel (.xlsx) trong Treeview Tkinter dùng Pandas đọc file và điền vào Treeview.
- Import numpy, pandas, filedialog.
- Tạo Menu "Open Spreadsheet" gọi hàm
open_file(). - Hàm đọc file Excel bằng
pd.read_excel(), xóa Treeview cũ, thêm cột và hàng mới.
Ví dụ minh họa
from tkinter import *
from tkinter import ttk, filedialog
import numpy
import pandas as pd
win = Tk()
win.geometry("700x350")
style = ttk.Style()
style.theme_use('clam')
frame = Frame(win)
frame.pack(pady=20)
def open_file():
filename = filedialog.askopenfilename(title="Open a File", filetypes=[("Excel files", "*.xlsx"), ("All Files", "*.*")])
if filename:
try:
df = pd.read_excel(filename)
except ValueError:
label.config(text="Không thể mở file")
return
except FileNotFoundError:
label.config(text="File không tồn tại")
return
clear_treeview()
tree["column"] = list(df.columns)
tree["show"] = "headings"
for col in tree["column"]:
tree.heading(col, text=col)
df_rows = df.to_numpy().tolist()
for row in df_rows:
tree.insert("", "end", values=row)
tree.pack()
def clear_treeview():
tree.delete(*tree.get_children())
tree = ttk.Treeview(frame)
m = Menu(win)
win.config(menu=m)
file_menu = Menu(m, tearoff=False)
m.add_cascade(label="Menu", menu=file_menu)
file_menu.add_command(label="Open Spreadsheet", command=open_file)
label = Label(win, text='')
label.pack(pady=20)
win.mainloop()
Kết quả đầu ra
Cửa sổ có menu mở file Excel.

Sau khi chọn file, dữ liệu hiển thị trong Treeview.
