A Chrome extension that automatically fills web forms with CSV data. Perfect for quickly filling out repetitive forms with data from spreadsheets.
- Simple CSV Input: Paste data directly from Google Sheets or Excel
- Smart Field Matching: Automatically matches CSV field names to form fields using multiple detection strategies
- Flexible Matching: Handles field names with underscores, hyphens, and special characters
- Dropdown Support: Intelligently fills select dropdowns with partial or exact matches
- Google Sheets Compatible: Handles quotation marks from Google Sheets copy-paste
- Download or clone this repository
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked"
- Select the
FormFillerdirectory
-
Prepare your data in CSV format:
first_name,John last_name,Smith email,john.smith@example.com grade_level,12 -
Copy the data from your spreadsheet (Google Sheets, Excel, etc.)
-
Navigate to the form you want to fill
-
Click the extension icon and paste your CSV data
-
Click "Fill Form" - the extension will automatically match and fill fields
- Each line should contain:
field_name,value - Field names are matched against:
- Input/select
nameattributes - Input/select
idattributes - Associated
<label>text - ARIA labels
- Placeholders
- Input/select
The extension uses intelligent matching:
- Exact match: Tries to match field names exactly
- Normalized match: Ignores case, special characters, and spaces
- Contains match: For longer field names, uses partial matching
- Dropdown matching: For select fields, matches option text or value
first_name,Jane
email,jane@example.com
phone,555-1234
country,United States
state,CA
grade_level,12
You can use either the full option text or a partial match:
ON_Brd_Res_Status,1 # Matches "Pupil of the Board (01)"
status,Pupil # Also works with partial text
FormFiller/
├── manifest.json # Extension configuration
├── popup.html # Extension popup UI
├── css/
│ └── popup.css # Popup styling
├── js/
│ ├── popup.js # Popup logic and CSV parsing
│ └── fillFormsImproved.js # Content script for form filling
└── assets/
└── images/
└── iconOnly.png # Extension icon
popup.js
parseCSV(text): Parses CSV data from clipboardhandleFillForm(): Sends data to content script
fillFormsImproved.js
normalizeText(text): Normalizes text for matchingfindLabelForField(field): Finds label text using multiple strategiesmatchesField(labelText, csvFieldName): Matches field to CSV datafillTextField/fillSelectField/fillCheckableField: Fill different field types
Fields not filling:
- Check the browser console (F12) for messages
- Ensure CSV field names match form field names, IDs, or labels
- Try using the actual
nameoridattribute from the HTML
"Please refresh the page first":
- The content script needs to be injected - refresh the page and try again
Dropdowns not selecting:
- Try using the option value instead of text
- Check if the option text includes extra characters or formatting
- Improved field detection with 11 strategies
- Added Google Sheets quotation handling
- Enhanced dropdown matching logic
- Cleaned up and refactored code for maintainability
- Removed multi-form and file generation features (simplified to single form filling)
This extension is provided as-is for personal and educational use.