前提・実現したいこと
実際に行いたいことは黄色枠部分の表示ですが
ID部分は全6桁で1であれば000001と表示し
枝番は全3桁で1であれば001と表示したい
この内容についてご教授いただければ幸いです。
よろしくお願い致します。
該当のソースコード
python
1 2#EXCElファイルからCSVファイル作成 3 data = pd.read_excel(excel_search + '.xlsx') 4 data.to_csv(excel_search + '.csv', encoding="utf-8", index=False) 5 6#検索用画面をサブウインドウで構築 7class SubWindow(tkm.Frame): 8 def __init__(self,master,num): 9 super().__init__(master) 10 self.pack() 11 master.geometry("1000x400+400+300") 12 master.title("検索画面") 13 master.grab_set() 14 self.set_data() 15 self.create_widgets() 16 17#csvファイル読込 18def set_data(self): 19 self.data = pd.read_csv("/search.csv", dtype=object, encoding="utf-8", na_filter=False) 20 self.colname_list = ["ID", "日付","登録者社員番号","支店","種別","プロジェクト番号","枝番","顧客名","金額"] 21 self.width_list = [10, 15, 30, 20, 20, 40, 10, 200, 50] 22 self.search_col = "検索キーワード" 23 24def create_widgets(self): 25 self.pw_main = ttk.PanedWindow(self.master, orient="vertical") 26 self.pw_main.pack(expand=True, fill=tkm.BOTH, side="left") 27 self.pw_top = ttk.PanedWindow(self.pw_main, orient="horizontal", height=25) 28 self.pw_main.add(self.pw_top) 29 self.pw_bottom = ttk.PanedWindow(self.pw_main, orient="vertical") 30 self.pw_main.add(self.pw_bottom) 31 self.creat_input_frame(self.pw_top) 32 self.create_tree(self.pw_bottom) 33 34def creat_input_frame(self, parent): 35 fm_input = ttk.Frame(parent, ) 36 parent.add(fm_input) 37 lbl_keyword = ttk.Label(fm_input, text="キーワード", width=7) 38 lbl_keyword.grid(row=1, column=1, padx=2, pady=2) 39 self.keyword = tkm.StringVar() 40 ent_keyword = ttk.Entry(fm_input, justify="left", textvariable=self.keyword) 41 ent_keyword.grid(row=1, column=2, padx=2, pady=2) 42 ent_keyword.bind("<Return>", self.search) 43 44def create_tree(self, parent): 45 self.result_text = tkm.StringVar() 46 lbl_result = ttk.Label(parent, textvariable=self.result_text) 47 parent.add(lbl_result) 48 self.tree = ttk.Treeview(parent) 49 self.tree["column"] = self.colname_list 50 self.tree["show"] = "headings" 51 self.tree.bind("<Double-1>", self.onDuble) 52 for i, (colname, width) in enumerate(zip(self.colname_list, self.width_list)): 53 self.tree.heading(i, text=colname) 54 self.tree.column(i, width=width) 55 parent.add(self.tree) 56 57def search(self, event=None): 58 keyword = self.keyword.get() 59 result = self.data[self.data[self.search_col].str.contains(keyword, na=False)] 60 self.update_tree_by_search_result(result) 61 62def update_tree_by_search_result(self, result): 63 self.tree.delete(*self.tree.get_children()) 64 self.result_text.set(f"検索結果:{len(result)}") 65 for _, row in result.iterrows(): 66 self.tree.insert("", "end", values=row[self.colname_list].to_list()) 67 68def onDuble(self, event): 69 for item in self.tree.selection(): 70 print(self.tree.item(item)["values"]) 71 72
試したこと
作成されたCSVファイルを一度開き、名前付けて保存【CSV UTF-8】で再度作成した場合には
上記内容が解消されましたが
pythonでExcelファイルからCSV吐き出しし読込動作となると上記結果となってしまいます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/03/02 08:05
2022/03/02 08:25
2022/03/03 06:47