python_GUI
엑셀DB검색
python_DV
2023. 1. 29. 17:52
728x90
내부 함수
import pandas as pd
from tabulate import tabulate
from tkinter import ttk
from tkinter import scrolledtext
wbf ='site_db_new_v14.xlsx'
data = pd.read_excel(wbf, sheet_name=[0,1], engine = "openpyxl")
data[1]=data[1].applymap(str) #모든 데이터프레임에 데이터를 문자화하여 검색이 가능하도록
data[1]['내선']=data[1]['내선'].str.zfill(4) #데이터 앞에 0 붙이기
def innerline():
datashow = data[1][data[1][chlb.get()].str.contains(str(s1.get()))] #문자로 검색
scr.delete(0.0, END)
scr.insert(INSERT,tabulate(datashow, headers='keys',showindex=False))
datashow.reset_index()
외형
inline_tel=LabelFrame(tab3, text='내선 및 연락처 검색')
inline_tel.grid(column=0, row=2, padx=8, pady=5)
serch_objet=StringVar()
chlb=ttk.Combobox(inline_tel, width=6, textvariable=serch_objet, state='readonly')
chlb['values'] = ('부서', '이름', '내선', '연락처')
chlb.grid(column=0, row=0,sticky='W')
s1=Entry(inline_tel,width=15)
s1.grid(column=1, row=0,sticky='W')
b1 = Button(inline_tel,text="검색",width=12,command=innerline).grid(column=2, row=0,sticky='W')
scr = scrolledtext.ScrolledText(inline_tel, width=44, height=20, wrap=WORD)
scr.grid(column=0,columnspan=4)
scr.config(font=("Consolas", 9))
728x90
반응형