from openpyxl import load_workbook
from tkinter import *
wb = load_workbook('C:\\Users\\Admin\\Desktop\\excel.xlsx')
ws = wb.active
# Set header row
def init_excel():
headers = ["Name", "Course", "Semester", "Form No.", "Contact No.", "Email", "Address"]
for i, h in enumerate(headers, 1):
ws.cell(row=1, column=i).value = h
wb.save('C:\\Users\\Admin\\Desktop\\excel.xlsx')
# Add form data
def insert_data():
if all(f.get() for f in entries):
row = ws.max_row + 1
for i, f in enumerate(entries, 1):
ws.cell(row=row, column=i).value = f.get()
wb.save('C:\\Users\\Admin\\Desktop\\excel.xlsx')
clear_fields()
else:
print("Please fill all fields.")
# Clear form
def clear_fields():
for f in entries:
f.delete(0, END)
# Move to next field
def focus_next(entry):
entry.focus_set()
init_excel()
root = Tk()
root.title("Registration Form")
root.geometry("500x300")
root.config(bg="light green")
labels = ["Name", "Course", "Semester", "Form No.", "Contact No.", "Email", "Address"]
entries = [Entry(root) for _ in labels]
for i, lbl in enumerate(labels):
Label(root, text=lbl, bg="light green").grid(row=i+1, column=0)
entries[i].grid(row=i+1, column=1, ipadx=100)
if i < len(labels) - 1:
entries[i].bind("<Return>", lambda e, nf=entries[i+1]: focus_next(nf))
Button(root, text="Submit", fg="black", bg="red", command=insert_data).grid(row=len(labels)+1, column=1)
root.mainloop()