forked from ayushagarwal001/Hacktoberfest2022
-
Notifications
You must be signed in to change notification settings - Fork 0
/
registaration.py.rar
242 lines (182 loc) · 14.2 KB
/
registaration.py.rar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# import openpyxl and tkinter modules
from openpyxl import *
from tkinter import *
# globally declare wb and sheet variable
# opening the existing excel file
wb = load_workbook('C:\\Users\\Admin\\Desktop\\excel.xlsx')
# create the sheet object
sheet = wb.active
def excel():
# resize the width of columns in
# excel spreadsheet
sheet.column_dimensions['A'].width = 30
sheet.column_dimensions['B'].width = 10
sheet.column_dimensions['C'].width = 10
sheet.column_dimensions['D'].width = 20
sheet.column_dimensions['E'].width = 20
sheet.column_dimensions['F'].width = 40
sheet.column_dimensions['G'].width = 50
# write given data to an excel spreadsheet
# at particular location
sheet.cell(row=1, column=1).value = "Name"
sheet.cell(row=1, column=2).value = "Course"
sheet.cell(row=1, column=3).value = "Semester"
sheet.cell(row=1, column=4).value = "Form Number"
sheet.cell(row=1, column=5).value = "Contact Number"
sheet.cell(row=1, column=6).value = "Email id"
sheet.cell(row=1, column=7).value = "Address"
# Function to set focus (cursor)
def focus1(event):
# set focus on the course_field box
course_field.focus_set()
# Function to set focus
def focus2(event):
# set focus on the sem_field box
sem_field.focus_set()
# Function to set focus
def focus3(event):
# set focus on the form_no_field box
form_no_field.focus_set()
# Function to set focus
def focus4(event):
# set focus on the contact_no_field box
contact_no_field.focus_set()
# Function to set focus
def focus5(event):
# set focus on the email_id_field box
email_id_field.focus_set()
# Function to set focus
def focus6(event):
# set focus on the address_field box
address_field.focus_set()
# Function for clearing the
# contents of text entry boxes
def clear():
# clear the content of text entry box
name_field.delete(0, END)
course_field.delete(0, END)
sem_field.delete(0, END)
form_no_field.delete(0, END)
contact_no_field.delete(0, END)
email_id_field.delete(0, END)
address_field.delete(0, END)
# Function to take data from GUI
# window and write to an excel file
def insert():
# if user not fill any entry
# then print "empty input"
if (name_field.get() == "" and
course_field.get() == "" and
sem_field.get() == "" and
form_no_field.get() == "" and
contact_no_field.get() == "" and
email_id_field.get() == "" and
address_field.get() == ""):
print("empty input")
else:
# assigning the max row and max column
# value upto which data is written
# in an excel sheet to the variable
current_row = sheet.max_row
current_column = sheet.max_column
# get method returns current text
# as string which we write into
# excel spreadsheet at particular location
sheet.cell(row=current_row + 1, column=1).value = name_field.get()
sheet.cell(row=current_row + 1, column=2).value = course_field.get()
sheet.cell(row=current_row + 1, column=3).value = sem_field.get()
sheet.cell(row=current_row + 1, column=4).value = form_no_field.get()
sheet.cell(row=current_row + 1, column=5).value = contact_no_field.get()
sheet.cell(row=current_row + 1, column=6).value = email_id_field.get()
sheet.cell(row=current_row + 1, column=7).value = address_field.get()
# save the file
wb.save('C:\\Users\\Admin\\Desktop\\excel.xlsx')
# set focus on the name_field box
name_field.focus_set()
# call the clear() function
clear()
# Driver code
if __name__ == "__main__":
# create a GUI window
root = Tk()
# set the background colour of GUI window
root.configure(background='light green')
# set the title of GUI window
root.title("registration form")
# set the configuration of GUI window
root.geometry("500x300")
excel()
# create a Form label
heading = Label(root, text="Form", bg="light green")
# create a Name label
name = Label(root, text="Name", bg="light green")
# create a Course label
course = Label(root, text="Course", bg="light green")
# create a Semester label
sem = Label(root, text="Semester", bg="light green")
# create a Form No. label
form_no = Label(root, text="Form No.", bg="light green")
# create a Contact No. label
contact_no = Label(root, text="Contact No.", bg="light green")
# create a Email id label
email_id = Label(root, text="Email id", bg="light green")
# create a address label
address = Label(root, text="Address", bg="light green")
# grid method is used for placing
# the widgets at respective positions
# in table like structure .
heading.grid(row=0, column=1)
name.grid(row=1, column=0)
course.grid(row=2, column=0)
sem.grid(row=3, column=0)
form_no.grid(row=4, column=0)
contact_no.grid(row=5, column=0)
email_id.grid(row=6, column=0)
address.grid(row=7, column=0)
# create a text entry box
# for typing the information
name_field = Entry(root)
course_field = Entry(root)
sem_field = Entry(root)
form_no_field = Entry(root)
contact_no_field = Entry(root)
email_id_field = Entry(root)
address_field = Entry(root)
# bind method of widget is used for
# the binding the function with the events
# whenever the enter key is pressed
# then call the focus1 function
name_field.bind("<Return>", focus1)
# whenever the enter key is pressed
# then call the focus2 function
course_field.bind("<Return>", focus2)
# whenever the enter key is pressed
# then call the focus3 function
sem_field.bind("<Return>", focus3)
# whenever the enter key is pressed
# then call the focus4 function
form_no_field.bind("<Return>", focus4)
# whenever the enter key is pressed
# then call the focus5 function
contact_no_field.bind("<Return>", focus5)
# whenever the enter key is pressed
# then call the focus6 function
email_id_field.bind("<Return>", focus6)
# grid method is used for placing
# the widgets at respective positions
# in table like structure .
name_field.grid(row=1, column=1, ipadx="100")
course_field.grid(row=2, column=1, ipadx="100")
sem_field.grid(row=3, column=1, ipadx="100")
form_no_field.grid(row=4, column=1, ipadx="100")
contact_no_field.grid(row=5, column=1, ipadx="100")
email_id_field.grid(row=6, column=1, ipadx="100")
address_field.grid(row=7, column=1, ipadx="100")
# call excel function
excel()
# create a Submit Button and place into the root window
submit = Button(root, text="Submit", fg="Black",
bg="Red", command=insert)
submit.grid(row=8, column=1)
# start the GUI
root.mainloop()