前提・実現したいこと
プログラミング初心者です。
tkinterでエクセルファイル(.xlsxファイル)を操作するGUI作成の勉強をしています。
エクセルファイルの操作で困っていて質問させていただきます。
やりたいこと
①
テキストボックスに操作したいエクセルファイルのファイル名を入力し、
その値をget()で取得して変数に代入して、CドライブPythonフォルダ内に保存されているエクセルファイルを開きたい。
②
もう一つのテキストボックスにエクセルファイルに入力したい数値or文字列を入力し、
その値をget()で取得して変数に代入してエクセルファイルに入力する。
プログラムを実行するとエラーが発生してエクセルファイルを開くことができません。
発生している問題・エラーメッセージ
openpyxl does not support file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm
該当のソースコード
Python
1import tkinter as tk 2from tkinter import ttk 3import openpyxl as px 4 5class SampleAPP(ttk.Frame): 6 7 def __init__(self, master = None): 8 super().__init__(master) 9 self.create_widgets() 10 #self.clicked() 追記 ここを消すとエラーが出なくなった 11 12 def create_widgets(self): 13 self.label1 = ttk.Label(self, text = "file name") 14 self.label1.grid(column = 1, row = 1) 15 self.label2 = ttk.Label(self, text = "input value") 16 self.label2.grid(column = 1, row = 2) 17 18 self.entry1 = ttk.Entry(self) 19 self.entry1.grid(column = 2, row = 1) 20 self.entry2 = ttk.Entry(self) 21 self.entry2.grid(column = 2, row = 2) 22 23 self.button = ttk.Button(self, text = "Click", command = self.clicked) 24 self.button.grid(column = 2, row = 3) 25 26 self.grid(column = 0, row = 0) 27 28 def clicked(self): 29 self.file_name = self.entry1.get() 30 self.input_value = self.entry2.get() 31 32 self.samplebook = "C:\Python\" + self.file_name + ".xlsx" 33 self.wb = px.load_workbook(self.samplebook) 34 self.ws = self.wb["Sheet1"] 35 self.ws.cell(row = 1, column = 1).value = self.input_value 36 self.wb.save("C:\Python\" + self.file_name + ".xlsx") 37 38def main(): 39 root = tk.Tk() 40 root.title("sample") 41 root.geometry("300x200") 42 SampleAPP(root) 43 root.mainloop() 44 45if __name__ == "__main__": 46 main()
試したこと
補足情報(FW/ツールのバージョンなど)
Python 3.8.5
回答2件
あなたの回答
tips
プレビュー