从数据库里面获得资料再整理到本地文件

import winsound
import xlwt
import pyodbc
import tkinter as tk
import  datetime
window = tk.Tk()
window.title('Down information')
window.geometry('300x300')
e = tk.Entry(window, show=None)
e.pack()
def write_excel(d):
    style = xlwt.XFStyle()
    font = xlwt.Font()
    font.color_index = 4
    font.name = 'Times New Roman'
    style.font = font
    style.num_format_str = 'm/d/yyyy h:mm'
    f = xlwt.Workbook()
    sheet1 = f.add_sheet('information', cell_overwrite_ok=True)
    row0 = ["model_no","model_desc", "Model_serno", "part_no", "part_serno", "part_desc", "dtinput", "mfg_date"]
    # 写第一行
    for i in range(0, len(row0)):
        sheet1.write(0, i, row0[i], style)
    # 从第二行开始写从数据库里面捞出来的数据
    for i in range(0, len(d)):
        for m in range(0, len(d[i])):
            if type(d[i][m])==datetime.datetime:
                sheet1.write(i + 1, m, d[i][m], style)
            else:
                sheet1.write(i + 1, m, d[i][m], style)
    f.save('C:/test/' + tt + '.xls')
global Mes1
Mes1 = None
global w
w = None
def insert_point():
    dis('click')
    global tt
    tt = e.get()
    if e.get() == '':
        dis('input is null')
        show_eff(False)
    else:
        conn = pyodbc.connect(driver='SQL Server Native Client 11.0', server="111",
                              user="ddq", password="lddxx", database="pddd")
        cur = conn.cursor()
        dis('check basedate ok')
        cur.execute(
            #"select * from v_customer_require_01 where Model_serno in (select value from ffSerialNumber where  unitid in ( (select id from ffUnit where ProductionOrderID in ( select id from ffProductionOrder where ProductionOrderNumber= ? ))))order by Model_serno ,part_no ",
            "select * from v_customer_require WHERE Model_serno IN (SELECT Value FROM ffSerialNumber WHERE UnitID IN (SELECT ID FROM ffUnit WHERE ProductionOrderID IN (SELECT ID FROM ffProductionOrder WHERE ProductionOrderNumber= ? ) ))order by Model_serno ,part_no  ",
            e.get())
        data = cur.fetchall()
        if len(data) != 0:
            t = []
            d = []
            for i in range(len(data)):
                t.append(data[i][0])
                t.append(data[i][1])
                t.append(data[i][2])
                t.append(data[i][3])
                t.append(data[i][4])
                t.append(data[i][5])
                t.append(data[i][6])
                t.append(data[i][7])
                d.append(t)
                t = []
            write_excel(d)
            cur.close()
            conn.close()
            dis('ok.next')
            show_eff(True)
        else:
            dis('input search is null')
            show_eff(False)
            cur.close()
            conn.close()
def show_eff(e):
    global Mes1
    if Mes1 is None:
        Mes1 = tk.Message(text='OK' if e else 'Fail', width=60)
        Mes1.pack()
    else:
        Mes1.pack_forget()
        Mes1 = tk.Message(text='OK' if e else 'Fail', width=60)
        Mes1.pack()
    if e == False:
        winsound.Beep(900, 1000)


def windowset():
    b1 = tk.Button(window, text='insert point', width=15,
                   height=2, command=insert_point)
    b1.pack()
    dis('begin')
    window.mainloop()


def dis(a):
    global w
    if w is None:
        w = tk.Label(
            background="blue",
            borderwidth=10,
            justify="left",
            foreground="white",
            underline=4,
            anchor="ne",
            compound="bottom"
        )
        w['text'] = a
        w.pack()
    else:
        w.pack_forget()
        w = tk.Label(
            background="blue",
            borderwidth=10,
            justify="left",
            foreground="white",
            underline=4,
            anchor="ne",
            compound="bottom"
        )
        w['text'] = a
        w.pack()

windowset()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值