How to fill a PDF form from Excel
You have a spreadsheet with 50 rows of data and a PDF form you need filled out for every single one. Doing them by hand takes most of a day. This guide shows you how to do all 50 in about two minutes, free, with nothing uploaded anywhere.
What you need before you start
Two files. First, a fillable PDF form, meaning a PDF with actual named form fields, not just a flat image of a form. If you're not sure whether your PDF qualifies, read what a fillable PDF is before going further. Second, your Excel spreadsheet with one header row and one row of data per person or record. That's it.
Step 1: save your Excel file as CSV (UTF-8)
FillPDFfromCSV reads CSV files, not .xlsx directly. The conversion takes about 10 seconds in Excel. Open your workbook, go to File, Save As, and in the format dropdown choose "CSV UTF-8 (Comma delimited) (.csv)". If you're on a Mac, the option may just say "CSV UTF-8". Pick that one, not "CSV (MS-DOS)" or "CSV (Macintosh)". UTF-8 matters because it handles names with accents, non-Latin characters, and smart quotes without scrambling them.
If your spreadsheet has multiple sheets, only the active (currently visible) sheet exports. Make sure the right sheet is selected before you save.
Step 2: check your header row
Row 1 must be your column headers, not data. Headers like "FirstName", "LastName", "StartDate", "Salary" work well. The tool will try to match each header to a form field by name. Case doesn't matter for matching, "firstname" and "FirstName" both match a field called "FirstName", but exact spelling does. If your form has a field called "DateOfBirth" and your CSV header says "DOB", the match won't happen automatically. You can rename the column in Excel before you save, or remap it manually in the tool.
Keep things clean: no merged cells above row 1, no company logo spanning the top rows, no blank header cells for columns you want to use. A plain flat table is all the tool needs.
Step 3: open the tool and drop in your files
Go to fillpdffromcsv.com. You'll see two drop zones: one for the PDF, one for the CSV. Drop your fillable PDF into the first zone. Drop the CSV you just saved into the second. The tool reads both files entirely in your browser. Nothing goes to a server. Your salary figures and employee names stay on your machine.
Step 4: review the field mapping
After you drop both files, the tool shows you a mapping table. On the left are the PDF's field names. On the right are your CSV column headers. Where names matched automatically, you'll see a green tick. Where they didn't match, you'll see a dropdown so you can pick the right column yourself. Take 30 seconds to scan the whole list. A field mapped to the wrong column will fill every PDF with the wrong data, and that's annoying to undo.
Step 5: generate and download
Hit the Generate button. The tool processes one row at a time using pdf-lib, a JavaScript library that writes directly into the PDF's form fields. For 100 rows and a simple form, this usually finishes in under 10 seconds. You get two things to download: a ZIP file with one named PDF per row (named after the value in your first column by default), and a single merged PDF with all filled forms concatenated. The merged PDF is handy for printing everything in one go.
Common problems and how to fix them
Fields appear blank in the output. The most common cause is a mapping miss. Go back and check that every field you care about has a column assigned. The second most common cause is that the PDF field is read-only or locked. Some PDFs are form-protected. In that case you'll need to remove the protection first, which Acrobat or the free PDF24 tool can do.
Special characters look wrong. You probably saved the CSV without UTF-8 encoding. Re-save from Excel as "CSV UTF-8" and try again.
Dates show up as numbers. Excel stores dates as serial numbers internally. Before saving as CSV, format the date column as Text or as a date formatted string (like YYYY-MM-DD) so Excel writes the actual date string to the CSV instead of "45678".
When this is faster than any other method
The break-even point against manual entry is roughly 5 rows. Below that, typing is probably quicker. Above 5 rows, this approach wins by a wider margin every time. At 200 rows, the tool typically finishes in about 20 seconds. Doing 200 forms by hand at 3 minutes each is 10 hours of work.
Common uses: offer letters and onboarding packets from an HR spreadsheet, certificates of completion for training courses, invoices per client row, permit applications, and event badges. For the HR and offer-letter workflow specifically, see the guide on batch-filling offer letters. For a broader look at the concept, see the guide on PDF mail merge. All guides are listed on the guides hub.
Frequently asked questions
Does the tool work with .xlsx files directly?
Not directly. Save your spreadsheet as CSV UTF-8 first. In Excel: File, Save As, then choose "CSV UTF-8 (Comma delimited)". Takes about 10 seconds.
How many rows can I process at once?
There's no hard limit built into the tool. In practice, browsers handle a few hundred rows on a typical form with no trouble. Very large PDFs (many pages, embedded images) with thousands of rows may slow down or run out of browser memory. For most office use cases, you won't hit a wall.
My PDF fields aren't being detected. What's wrong?
The PDF might be a flat scan rather than a true fillable form. Open it in Adobe Reader or your browser's PDF viewer and try clicking on what looks like a field. If nothing highlights, the PDF has no form fields. You'll need to add them using Acrobat, LibreOffice, or an online tool. See the guide on <a href="/fillable-pdf-form-explained/">what a fillable PDF is</a> for how to do that.
Can I use Google Sheets instead of Excel?
Yes. In Google Sheets, go to File, Download, and choose "Comma Separated Values (.csv)". That exports the active sheet as a UTF-8 CSV, which works perfectly.
Is my data really never uploaded?
Correct. Everything runs in your browser using JavaScript. No file ever leaves your computer. There's no server receiving your spreadsheet or PDF. You can turn off your internet connection after the page loads and the tool still works.