Open In App

Simple registration form using Python Tkinter

Last Updated : 11 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Tkinter is Python's standard GUI (Graphical User Interface) library and OpenPyXL is a module that allows for reading and writing Excel files. This guide shows you how to create a simple registration form with Tkinter, where users enter their details and those details are written into an Excel file. This form will automatically store the information in a pre-existing Excel file.

Steps to create the registration form

  • Create an Excel file: Make sure you have an empty Excel file (excel.xlsx) created and accessible. This file will store the registration data.
  • Create the Tkinter Window: We'll build a basic form with fields like Name, Course, Semester, Form Number, Contact Number, Email and Address.

Python code

Python
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()

Output
 



Explanation:

  • Loads an existing Excel file and sets up the active worksheet to store form data.
  • init_excel() writes column headers (Name, Course, etc.) in the first row of the Excel sheet.
  • Creates a Tkinter window with labeled input fields for user details like Name, Course, Contact, etc.
  • On clicking the "Submit" button, the insert_data() checks if all fields are filled, then appends the data to the next row in the Excel file.
  • Pressing Enter moves to the next input field and after submission, fields are cleared using clear_fields().
  • The form window stays open using mainloop() until the user closes it.

Registration Form Using Python Tkinter
Next Article
Article Tags :
Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy