Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2016 15:35:51

REaktor413
Зарегистрирован: 2016-11-03
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическая сортировка данных в Excel!!! Реально ли это????

Доброго времени суток, Уважаемые Гуру Пайтона!
Прошу помочь реализовать или же направить на истинный путь и бросить эту затею.
Исходные данные:
есть 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)
Получаю такой вид:
рис.2

так вот, по задумке оператор должен в поля ввода (Entry) ввести очередность(1,2,3, и т.д) в необходимом порядке, а после нажатия будущей кнопки, колонка в файле Excel должна отсортироваться в установленном порядке.

Внимание вопрос))) : это вообще реально? или искать другой способ реализации.
Заранее спасибо, извините за сумбурность описания проблемы.

Прикреплённый файлы:
attachment 1.jpg (48,7 KБ)

Офлайн

#2 Ноя. 16, 2016 15:36:11

REaktor413
Зарегистрирован: 2016-11-03
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическая сортировка данных в Excel!!! Реально ли это????

рис. 2

Прикреплённый файлы:
attachment 2.JPG (11,4 KБ)

Офлайн

#3 Ноя. 16, 2016 15:58:12

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Динамическая сортировка данных в Excel!!! Реально ли это????

ты видел свой код? а это разрастется и с учетом вба превратится в очевидную НЕХ
сделай макрос и все будет просто



Офлайн

#4 Ноя. 16, 2016 18:50:38

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Динамическая сортировка данных в Excel!!! Реально ли это????

REaktor413
так вот, по задумке оператор должен в поля ввода (Entry) ввести очередность(1,2,3, и т.д) в необходимом порядке, а после нажатия будущей кнопки, колонка в файле Excel должна отсортироваться в установленном порядке.

Так в чем проблема? Заполняешь еще один столбец введенными цифрами и запускаешь сортировку по нему…

Офлайн

#5 Ноя. 17, 2016 07:21:12

REaktor413
Зарегистрирован: 2016-11-03
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическая сортировка данных в Excel!!! Реально ли это????

Iskatel
проблема в том, что при таком формировании интерфейса, командой get() возвращает только последнюю строку, а не весь столбец..

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version