Bảng tính Excel chứa một tập hợp thông tin được lưu trữ dưới dạng hàng và cột. Chúng tôi có thể hiển thị và sử dụng dữ liệu bảng tính trong ứng dụng Tkinter bằng cách sử dụng Treeview tiện ích con. Tiện ích Treeview trong Tkinter giúp người dùng thêm và thao tác dữ liệu dưới dạng bảng. Tuy nhiên, để phân tích và thao tác một tập hợp dữ liệu lớn, Python cung cấp Pandas thư viện cung cấp quyền truy cập vào nhiều chức năng và phương pháp có sẵn để thực hiện phân tích dữ liệu.
Đối với ví dụ này, chúng tôi sẽ làm theo các bước sau để hiển thị Dữ liệu Excel trong Tkinter,
-
Nhập các Thư viện bắt buộc như Numpy, Pandas, và đệ trình điện tử .
-
Thêm Thanh Menu để yêu cầu người dùng mở tệp từ Explorer.
-
Thêm Lệnh và xác định hàm open_file () sao cho nó chỉ chấp nhận .xlsx tệp từ trình khám phá.
-
Tạo Chế độ xem cây Tiện ích con.
-
Thêm cột trong Chế độ xem dạng cây tiện ích con bằng cách chuyển đổi dữ liệu cột thành danh sách.
-
Lặp lại cột để tìm tất cả các Tiêu đề trong dữ liệu đã cho.
-
Các hàng có thể được xác định bằng cách chuyển đổi khung dữ liệu đã cho thành đối tượng NumPy. Khi chúng tôi đã chuyển đổi, chúng tôi có thể sử dụng phương pháp danh sách để chuyển đổi nó thành một danh sách.
-
Lặp lại trên tất cả các hàng và chèn các hàng tuần tự trong cây.
Ví dụ
# 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()
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ hiển thị một cửa sổ chứa menu ở trên cùng để mở tệp Excel.
Khi chúng tôi mở tệp, nó sẽ hiển thị dữ liệu bảng tính trong cửa sổ.