tkinter と openpyxl
tkinterを使用し、エントリーボックスやコンボボックスに入力された値を、実行ボタンが押された時に、Excelの指定したシートのセル番地へ転記する。
import tkinter as tk
import tkinter.ttk as ttk
import openpyxl
class Application(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
# ウィンドウタイトルを設定[.title('タイトル')]
self.title("Tkinter x excel")
# ウィンドウ(外枠)の大きさを設定[.geometry('数値x数値')]*xは小文字エックス
self.geometry("400x300")
# 行の高さを設定 行番号:0
self.grid_rowconfigure(0, weight=1)
# 列の高さを設定 列番号:0
self.grid_columnconfigure(0, weight=1)
# フレーム作成
self.main_frame = tk.Frame()
self.main_frame.grid(row=0, column=0, sticky="nsew")
# エントリーボックス作成
self.id_box = tk.Entry(self.main_frame, width=10)
self.id_box.place(x=50, y=50)
tk.Label(self.main_frame, text='ID番号').place(x=40, y=20)
# コンボボックス作成
list = ['赤', '青', '黄']
self.color = ttk.Combobox(self.main_frame, values=list)
self.color.place(x=50, y=120)
tk.Label(self.main_frame, text='色').place(x=40, y=90)
# 実行ボタン作成
tk.Button(self.main_frame, text='実行', command=self.save_data).place(x=50, y=200)
# 実行ボタンが押された時の動作
def save_data(self):
# Excelファイル読込み
wb = openpyxl.load_workbook('Excelブック.xlsx')
# シート読込み
ws = wb['シート名']
# セル番地「A1」にエントリーボックスに入力された値を転記
ws['A1'] = self.id_box.get()
# セル番地「B1」にコンボボックスに入力された値を転記
ws['B1'] = self.color.get()
# Excelファイル保存
wb.save('Excelブック.xlsx')
if __name__ == "__main__":
app = Application()
app.mainloop()