Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tkinter의 Treeview 위젯에서 Excel 스프레드시트를 여는 방법은 무엇입니까?

<시간/>

Excel 스프레드시트에는 행과 열의 형태로 저장된 정보 집합이 포함되어 있습니다. Treeview 를 사용하여 Tkinter 애플리케이션에서 스프레드시트 데이터를 표시하고 사용할 수 있습니다. 위젯. Tkinter의 Treeview 위젯은 사용자가 테이블 형태로 데이터를 추가하고 조작할 수 있도록 도와줍니다. 그러나 Python은 대규모 데이터 세트를 분석하고 조작하기 위해 Pandas 데이터 분석을 수행하기 위해 많은 내장 함수 및 메서드에 대한 액세스를 제공하는 라이브러리입니다.

이 예에서는 다음 단계에 따라 Tkinter에 Excel 데이터를 표시합니다.

  • Numpy, Pandas와 같은 필수 라이브러리 가져오기 및 파일 대화 .

  • 탐색기에서 파일을 열도록 사용자에게 요청하는 메뉴 모음을 추가합니다.

  • 명령 추가 및 open_file() 함수 정의 .xlsx만 허용하도록 탐색기에서 파일.

  • 트리뷰 만들기 위젯.

  • 트리뷰 에 열 추가 열 데이터를 목록으로 변환하여 위젯.

  • 주어진 데이터에서 모든 표제를 찾기 위해 열을 반복합니다.

  • 주어진 데이터 프레임을 NumPy 객체로 변환하여 행을 식별할 수 있습니다. 변환한 후에는 list 메소드를 사용하여 목록으로 변환할 수 있습니다.

  • 모든 행을 반복하고 트리에 순차적으로 행을 삽입합니다.

예시

# 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()

출력

위의 코드를 실행하면 상단에 엑셀 파일을 열 수 있는 메뉴가 있는 창이 나타납니다.

Tkinter의 Treeview 위젯에서 Excel 스프레드시트를 여는 방법은 무엇입니까?

파일을 열면 창에 스프레드시트 데이터가 표시됩니다.

Tkinter의 Treeview 위젯에서 Excel 스프레드시트를 여는 방법은 무엇입니까?