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ウィジェットを非表示にするにはどうすればよいですか?
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
-
Tkinterを使用して外部プログラムを開く方法は?
アプリケーションの作成中に、外部のプログラムやアプリケーションとやり取りする必要がある場合があります。システムのアプリケーションやプログラムと対話するには、 osを使用する必要があります Pythonのモジュール。 この記事では、PythonのOSモジュールを使用して外部プログラムやオープンファイルを操作する方法を説明します。 まず、ファイルダイアログを使用して選択したファイルを開く関数を定義します Pythonのライブラリ。次に、パスを印刷し、 osを使用してファイルを開きます モジュール。 例 # Import the required Libraries from tkinter i