Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để mở Bảng tính Excel trong tiện ích Treeview trong Tkinter?

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, đệ 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.

Làm cách nào để mở Bảng tính Excel trong tiện ích Treeview trong Tkinter?

Khi chúng tôi mở tệp, nó sẽ hiển thị dữ liệu bảng tính trong cửa sổ.

Làm cách nào để mở Bảng tính Excel trong tiện ích Treeview trong Tkinter?