-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathData_Entry_using_Python_MS_Excel.py
129 lines (97 loc) · 4.56 KB
/
Data_Entry_using_Python_MS_Excel.py
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
import tkinter
from tkinter import ttk
from tkinter import messagebox
import os
import openpyxl
def enter_data():
accepted =accept_var.get()
if accepted=="Accepted":
first_name=first_name_entry.get()
last_name=last_name_entry.get()
if first_name and last_name:
title=title_combobox.get()
age=age_spinbox.get()
nationality=nationality_combobox.get()
# Course info
registration_status = reg_status_var.get()
numcourses = numcourses_spinbox.get()
numsemesters = numsemester_spinbox.get()
registration_status=reg_status_var.get()
print("First name: ", first_name, "Last name: ", last_name)
print("Title: ", title, "Age: ", age, "Nationality: ", nationality)
print("Courses: ", numcourses, " Semesters: ", numsemesters)
print("Registration status ->", registration_status)
print("------------------------------------------")
filepath="D:\data.xlsx"
if not os.path.exists(filepath):
workbook=openpyxl.Workbook()
sheet=workbook.active
heading=["First Name","Last Name","Title","Age","Nationality","Courses","Semesters","Registeration Status"]
sheet.append(heading)
workbook.save(filepath)
workbook = openpyxl.load_workbook(filepath)
sheet = workbook.active
sheet.append([first_name, last_name, title, age, nationality, numcourses,
numsemesters, registration_status])
workbook.save(filepath)
else:
tkinter.messagebox.showwarning(title="Error",message="Firstname and Lastname are required")
else:
tkinter.messagebox.showwarning(title="Error",message="You Have Not Accepted The Terms")
window=tkinter.Tk()
window.title("Data Entry Form")
frame=tkinter.Frame(window)
frame.pack()
#Saving User Info
user_info_frame=tkinter.LabelFrame(frame,text="User Info")
user_info_frame.grid(row=0 ,column=0,padx=20,pady=20)
first_name_label=tkinter.Label(user_info_frame,text="First Name")
first_name_label.grid(row=0,column=0)
last_name_label=tkinter.Label(user_info_frame,text="Last Name")
last_name_label.grid(row=0,column=1)
first_name_entry=tkinter.Entry(user_info_frame)
last_name_entry=tkinter.Entry(user_info_frame)
first_name_entry.grid(row=1,column=0)
last_name_entry.grid(row=1,column=1)
title_label=tkinter.Label(user_info_frame,text="Title")
title_combobox=ttk.Combobox(user_info_frame,values=["Mr.","Mrs.","Ms."])
title_label.grid(row=0,column=2)
title_combobox.grid(row=1,column=2)
age_label=tkinter.Label(user_info_frame,text="Age")
age_spinbox=tkinter.Spinbox(user_info_frame,from_=18,to=100)
age_label.grid(row=2,column=0)
age_spinbox.grid(row=3,column=0)
nationality_label=tkinter.Label(user_info_frame,text="Nationality")
nationality_combobox=ttk.Combobox(user_info_frame,values=["Asia","Africa","Europe","North America","South America","Antarctica","Oceania"])
nationality_label.grid(row=2,column=1)
nationality_combobox.grid(row=3,column=1)
for widget in user_info_frame.winfo_children():
widget.grid_configure(padx=10,pady=5)
#Saving Course Info
courses_frame=tkinter.LabelFrame(frame)
courses_frame.grid(row=1,column=0,sticky="news",padx=20,pady=10)
registered_label=tkinter.Label(courses_frame,text="Registeration Status")
reg_status_var=tkinter.StringVar(value="Not Registered")
registered_check=tkinter.Checkbutton(courses_frame,text="Currently Registered",variable=reg_status_var,onvalue="Registered",offvalue="Not Registered")
registered_label.grid(row=0,column=0)
registered_check.grid(row=1,column=0)
numcourses_label=tkinter.Label(courses_frame,text="Completed Courses")
numcourses_spinbox=tkinter.Spinbox(courses_frame,from_=0,to='infinity')
numcourses_label.grid(row=0,column=1)
numcourses_spinbox.grid(row=1,column=1)
numsemester_label=tkinter.Label(courses_frame,text="Semesters")
numsemester_spinbox=tkinter.Spinbox(courses_frame,from_=0,to='infinity')
numsemester_label.grid(row=0,column=2)
numsemester_spinbox.grid(row=1,column=2)
for widget in courses_frame.winfo_children():
widget.grid_configure(padx=10,pady=5)
#Accept Frames
terms_frame=tkinter.LabelFrame(frame,text="Terms & Conditions")
terms_frame.grid(row=2,column=0,sticky="news",padx=20,pady=10)
accept_var=tkinter.StringVar(value="Not Accepted")
terms_check=tkinter.Checkbutton(terms_frame,text="I Accept The Terms & Conditions",variable=accept_var,onvalue="Accepted",offvalue="Not Accepted")
terms_check.grid(row=0,column=0)
#Button
button=tkinter.Button(frame,text="Enter Data",command=enter_data)
button.grid(row=3,column=0,sticky="news",padx=20,pady=10)
window.mainloop()