【Python】 tkinter csvファイルを読み込みTreeviewに表示する

csvファイルを読み込みTreeviewに表示する

pandasにてcsvファイル読み込み、
tkinter、Treeviewを使用して、読み込んだデータをTreeviewに表示させる

csvファイル:
SpeciesData.csv

ファイル内容:

Species,Weight(g)
A,2
B,5
A,3
A,3
B,9
A,4
A,4
B,6
B,8
A,4
A,4
A,5
B,6
B,8
B,7
A,5
B,7
A,6
B,7
B,7

・サンプルコード

# -*- Coding:UTF-8 -*-
import tkinter as tk
import tkinter.ttk as ttk
import pandas as pd

###########################################
# 処理名    :Treeview初期化処理
# 処理内容  :Treeviewに出力した値を全て削除
###########################################
def DataInitialization():
    tree.delete(*tree.get_children())

###########################################
# 処理名   :データ反映処理
# 処理内容 :csvファイルを読み込みTreeviewに反映
###########################################
def InputCsv():
    df = pd.read_csv("SpeciesData.csv")
    for i in range(len(df)):
        tree.insert("", "end", values=(df.iloc[i][0], df.iloc[i][1]))


###########################################
# 処理名   :読込ボタン押下処理
# 処理内容 :
#           1.Treeviewを初期化する
#           2.csvファイルを読み込みTreeviewに出力
###########################################
def FncInput():
    # Treeview初期化処理
    DataInitialization()
    # データ反映処理
    InputCsv()


###########################################
# Tkinterの画面設定
###########################################
# ウィンドウの設定
base = tk.Tk()
base.title("CSV読込")
canvas = tk.Canvas(base, width=300, height=300, bd=0, highlightthickness=0)
canvas.pack()

#読込ボタン関係の設定
btn_inputcsv = tk.Button(base, text="読込", command=FncInput)
btn_inputcsv.place(x=130, y=20)

# Treeviewの設定
tree = ttk.Treeview(base, columns=(0, 1))
tree["show"] = "headings"
tree.column(0, width=100)
tree.column(1, width=100)
tree.heading(0, text='品種')
tree.heading(1, text='重さ(g)')
tree.place(x=50, y=50)

# 画面の表示
base.mainloop()

・実行結果

タイトルとURLをコピーしました