所以我一直在使用python来做我的' ETL'从SQL到Excel或CSV。我刚刚发现它比使用SSIS更快更容易。
当我在Jupyter中这样做时,我认为将它打包成一个我可以与他人分享的应用程序是一个有趣的练习。我不是最精通tkinter的,我正在尝试添加一个自定义大小的文本框,它比复制/粘贴查询的标准文本框好一点。问题是当我添加文本框时,它会调整应用程序窗口的设置。
这是我到目前为止所做的:
#Load Libraries
import pandas as pd
import numpy as np
import pyodbc
import xlsxwriter
from pandas import ExcelWriter
import openpyxl
import os
import datetime
from tkinter import *
#create window
def conVar():
server = e1.get()
db = e2.get()
un = e3.get()
pw = e4.get()
conn=("DRIVER={SQL Server};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s" % (server, db, un, pw))
print(conn)
root = Tk()
root.title("SQL2Excel")
root.geometry("500x500")
Label(root, text="Server").grid(row=0)
Label(root, text="Database").grid(row=1)
Label(root, text="Username").grid(row=2)
Label(root, text="pw").grid(row=3)
Label(root, text="Tables").grid(row=6)
Label(root, text="or Enter Query").grid(row=7)
variable = StringVar(root)
variable.set(" ")
w = OptionMenu(root, variable, "test1", "test2", "test3")
r = root
r.geometry("250x150")
t = Text(r, height=20, width=40)
e1 = Entry(root)
e2 = Entry(root)
e3 = Entry(root)
e4 = Entry(root, show="*")
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
e3.grid(row=2, column=1)
e4.grid(row=3, column=1)
w.grid(row=6, column=1)
t.grid(row=8, column=1)
Button(root, text='Quit', command=root.destroy).grid(row=4, column=0, sticky=W, pady=4)
Button(root, text='Test Connection', command=conVar).grid(row=4, column=1, sticky=W, pady=4)
root.mainloop()
我们的想法是,输入连接信息后,我会将一个表格列表放入组合框中,或者让用户将查询复制并粘贴到较大的文本框中。我真的觉得自己错过了一些简单的东西,但在这一点上却很挣扎。
有人可以帮我看看我的方式错误吗?谢谢。
答案 0 :(得分:0)
您的代码会更改根窗口的大小
backup
相反,请尝试更改Combobox的几何图形。
另外,我没有在你的代码中看到一个Combobox