Форум сайта python.su
Доброго времени суток, Уважаемые Гуру Пайтона!
Прошу помочь реализовать или же направить на истинный путь и бросить эту затею.
Исходные данные:
есть Excel документ с 3-мя столбцами с данными примерно такой :
Рис 1.
Так вот. С помощью win32com.client я открываю этот документ и на основе полученных данных через Tkinter вывожу на экран. примерно так:
def sort(event): win32 = Toplevel(win3) win32.title("блаблабла") win32.state("zoomed") fr1 = Frame(win32, width=1400, height=800, bg="white", bd=2, relief="ridge") fr1.place(x=20, y=20) lb = Label(win32, text="блаблабла", bg="yellow", relief="ridge") lb.place(x=30, y=10) fr21 = Frame(fr1, width=155, height=700, bg="lightgray", bd=2, relief="ridge") fr21.place(x=10, y=10) lb21 = Label(fr21, text=presslist[0], bg="yellow", relief="ridge") lb21.place(x=0, y=0) fr22 = Frame(fr1, width=155, height=700, bg="lightgray", bd=2, relief="ridge") fr22.place(x=185, y=10) lb22 = Label(fr22, text=presslist[1], bg="yellow", relief="ridge") lb22.place(x=0, y=0) # и т.д. i=0 dl=len(presslist) Excel = win32com.client.Dispatch("Excel.Application") wb = Excel.Workbooks.Open('C:\\plan\\pressa.xlsx') while i<dl: wb.Sheets (presslist[i]).Select() sheet = wb.ActiveSheet vals = [r[0].value for r in sheet.Range("A1:A50")] while None in vals: vals.remove(None) def sortPress(press): j=0 p=30 dl1=len(vals) while j<dl1: lb = Label(press, text=vals[j]) lb.place(x=5, y=p) ent1 = Entry(press, width=3) ent1.place(x=100, y=p) p=p+20 j=j+1 if i == 0: sortPress(fr21) elif i == 1: sortPress(fr22) # и т.д. i=i+1 #сохраняем рабочую книгу wb.Save() #закрываем ее wb.Close() #закрываем COM объект Excel.Quit() btn1.bind("<Button-1>", sort)
Прикреплённый файлы: 1.jpg (48,7 KБ)
Офлайн
рис. 2
Прикреплённый файлы: 2.JPG (11,4 KБ)
Офлайн
ты видел свой код? а это разрастется и с учетом вба превратится в очевидную НЕХ
сделай макрос и все будет просто
Офлайн
REaktor413
так вот, по задумке оператор должен в поля ввода (Entry) ввести очередность(1,2,3, и т.д) в необходимом порядке, а после нажатия будущей кнопки, колонка в файле Excel должна отсортироваться в установленном порядке.
Офлайн
Iskatelпроблема в том, что при таком формировании интерфейса, командой get() возвращает только последнюю строку, а не весь столбец.
Офлайн