前提・実現したいこと
tkinterでファイルとシートを選んで、選んだEXCELファイルをDataframeに変えたいのですがうまくいきません。
excelのsheet名は時と場合によって変わるので、GUIに一覧を表示させてそこから選びたいです。
なかなかうまくいかず、ネットにもドンピシャなアドバイスはなかったと感じています。
最終的にはexcelの処理ファイル<excelのファイルを選ぶ関数<シートを選ぶ関数(モジュール?)という風にしたいです。
よろしくお願いします。
発生している問題・エラーメッセージ
特にありませんが、関数の外にリストを持ち出せません。 選ぶExcel sheetは必ず1つです。
該当のソースコード
python
1def sheet_select(sheets): 2 import tkinter as tk 3 root = tk.Tk() 4 root.title('sheet選択') 5 # フレームの作成 6 7 # フレーム1(上側:リストボックスを格納する) 8 frame = tk.Frame() 9 frame.grid(row=0, sticky="we") 10 # フレーム2(下側:ボタンを格納する) 11 frame_button = tk.Frame() 12 frame_button.grid(row=1, sticky="we") 13 14 # データ(リストボックスに表示させる) 15 list_value = tk.StringVar() 16 list_value.set(['sheet1', 'sheet2']) 17 18 # リストボックスの作成 19 lb = tk.Listbox(frame, height=8, listvariable=list_value, selectmode="single") 20 lb.pack() 21 22 # テキストの作成 23 text_str = tk.StringVar() 24 text_str.set("OKを押して下さい") 25 text = tk.Label(frame_button, textvariable=text_str) 26 text.grid(row=0, columnspan=3) 27 # tk.messagebox.showinfo('CBD比較プログラム','Sheetsを選んでください') 28 def ok_button(): 29 selected = [] 30 for i in lb.curselection(): 31 selected.append(lb.get(i, i)[0]) 32 print(selected) 33 34 def close_window(): 35 root.destroy() 36 37 button = tk.Button(frame_button, text="OK", command=lambda: [ok_button(), close_window()]) 38 button.grid(row=1, column=0, columnspan=2) 39 print(selected) 40 # 画面の表示 41 root.mainloop()
試したこと
global変数やクラスにするというものはネットで見つけたのですが、コンソールに表示されるだけだったり、
関数内でしか結局使えず、断念しました。
私がまだ勉強を始めたばかりで的外れなことをしているかもしれないのですがアドバイスをよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
python3.7.1
pycharm
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。