Python
 Computer >> コンピューター >  >> プログラミング >> Python

TkinterのTreeviewウィジェットでExcelスプレッドシートを開く方法は?


Excelスプレッドシートには、行と列の形式で保存された一連の情報が含まれています。 Treeview を使用して、Tkinterアプリケーションでスプレッドシートデータを表示および使用できます。 ウィジェット。 TkinterのTreeviewウィジェットは、ユーザーがテーブルの形式でデータを追加および操作するのに役立ちます。ただし、大量のデータセットを分析および操作するために、Pythonにはパンダが用意されています。 データ分析を実行するための多くの組み込み関数とメソッドへのアクセスを提供するライブラリ。

この例では、次の手順に従って、ExcelデータをTkinterで表示します。

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

出力

上記のコードを実行すると、Excelファイルを開くためのメニューを上部に含むウィンドウが表示されます。

TkinterのTreeviewウィジェットでExcelスプレッドシートを開く方法は?

ファイルを開くと、ウィンドウにスプレッドシートデータが表示されます。

TkinterのTreeviewウィジェットでExcelスプレッドシートを開く方法は?


  1. Tkinterウィジェットを非表示にするにはどうすればよいですか?

    tkinterウィジェットを非表示にするには、 pack_forget()を使用できます。 方法。通常、ウィンドウからウィジェットのマップを解除するために使用されます。 例 次の例では、ラベルテキストと、ラベルテキストウィジェットで非表示のイベントをトリガーするために使用できるボタンを作成します。 #Import the required libraries from tkinter import * #Create an instance of tkinter frame win= Tk() #Set the geometry of frame win.geometry("6

  2. Tkinterを使用して外部プログラムを開く方法は?

    アプリケーションの作成中に、外部のプログラムやアプリケーションとやり取りする必要がある場合があります。システムのアプリケーションやプログラムと対話するには、 osを使用する必要があります Pythonのモジュール。 この記事では、PythonのOSモジュールを使用して外部プログラムやオープンファイルを操作する方法を説明します。 まず、ファイルダイアログを使用して選択したファイルを開く関数を定義します Pythonのライブラリ。次に、パスを印刷し、 osを使用してファイルを開きます モジュール。 例 # Import the required Libraries from tkinter i