import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter import messagebox as msgbox
import tkinter.font as tkFont
import pymysql, xlwt
class info():
def __init__(self, master, title):
self.TITLE = title
self.master = master
self._setpage()
def _setpage(self, ):
ttk.Label(self.master, text="竞拍日期:").grid(row=1, column=0, padx=5, pady=10, sticky='W')
self.entry = ttk.Entry(self.master, width='20')
self.entry.grid(row=1, column=1, padx=5, pady=10, sticky='W')
self.entry.insert(0, '2021-06-15')
ttk.Label(self.master, text="拍卖阶段:").grid(row=2, column=0, padx=5, pady=5, sticky='W')
self.entry3 = ttk.Combobox(self.master, width=12, state='readonly')
self.entry3['values'] = ('全部', '一拍', '二拍', '变卖')
self.entry3.grid(row=2, column=1, padx=5, pady=5, sticky='W')
ttk.Label(self.master, text="住房类型:").grid(row=3, column=0, padx=5, pady=5, sticky='W')
self.entry4 = ttk.Combobox(self.master, width=12, state='readonly')
self.entry4['values'] = ('全部', '商业', '住宅')
self.entry4.grid(row=3, column=1, padx=5, pady=5, sticky='W')
ttk.Button(self.master, text="导出", width=5, command=self.ModPwd).grid(row=4, column=1, padx=5, pady=5,
ipadx=10, ipady=5,
sticky='NSE')
# 提示
tips.set('')
ttk.Label(self.master, textvariable=tips, style="Verification.Label").grid(row=5, column=0, columnspan=20,
padx=5, pady=5, sticky='W')
self.entry3.set('全部')
self.entry4.set('全部')
# 修改密码
def ModPwd(self, ):
if self.entry.get() == "":
tips.set("请输入竞拍日期")
return False
else:
try:
host, user, passwd, db='10.10.2.6','api','123456','api'
conn = pymysql.connect(user=user,host=host,port=3306,passwd=passwd,db=db,charset='utf8')
cur = conn.cursor()
where = ''
where2 = ''
if self.entry3.get() != '全部':
where = " and auctionstage = '" + self.entry3.get() + "' "
if self.entry4.get() != '全部':
where2 = " and types = '" + self.entry4.get() + "' "
sql = "SELECT region as '区域', community as '楼盘名称', address as '地址', housearea as '面积', housetype as '户型', floor as '楼层', orientation as '朝向', startprice as '起拍价', appraisalprice as '评估价', bond as '保证金', DATE_FORMAT(FROM_UNIXTIME(startdate),'%Y-%m-%d') as '竞拍时间' FROM room_infoimg WHERE DATE_FORMAT(FROM_UNIXTIME(startdate),'%Y-%m-%d') > " + "'" + self.entry.get() + "'" + where + where2
print(sql)
cur.execute(sql) # 返回受影响的行数
fields = [field[0] for field in cur.description] # 获取所有字段名
all_data = cur.fetchall() # 所有数据
# 写入excel
book = xlwt.Workbook()
sheet = book.add_sheet('sheet1')
for col,field in enumerate(fields):
sheet.write(0,col,field)
row = 1
for data in all_data:
for col,field in enumerate(data):
sheet.write(row,col,field)
row += 1
book.save(self.entry.get() + self.entry3.get() + self.entry4.get() + ".xls")
tips.set('导出成功为' + self.entry.get() + self.entry3.get() + self.entry4.get() +'.xls')
except:
tips.set('导出失败')
if __name__ == '__main__':
# 初始化
root = tk.Tk()
# 标题
root.title('查询导出')
# 窗口大小
width = 480
height = 320
# 窗口居屏幕中央
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
root.geometry(alignstr)
# 窗口是否可变
root.resizable(0, 0)
# 提示文字
tips = StringVar()
# 样式
root.configure(background="white")
style = ttk.Style()
style.configure(".", font=("宋体", 10), background="white")
style.configure("Ver.Label", foreground="#F56C6C")
style.configure("Verification.Label", foreground="#F56C6C")
# 控件
tabControl = ttk.Notebook(root)
tab1 = ttk.Frame(tabControl)
tabControl.add(tab1, text='查询')
tabControl.pack(expand=1, fill="both")
info(tab1, "查询")
# 进入消息循环
root.mainloop()
打包成exe
pip install pyinstaller -i https://mirrors.ustc.edu.cn/pypi/web/simple
pyinstaller -F -w dao.py