CSV to Google Forms: Convert a Question Bank Without Re-typing
You exported a question bank as CSV — from a survey tool, a database, or a script — and you want it in a Google Form. The obstacle: Google Forms has no native CSV import. There is no "Upload CSV" button. The working route is to convert the CSV into a Form-ready file, then import it. This guide covers the CSV formatting that imports cleanly — UTF-8, fixed columns, and the one-image-URL rule — and how ExamParser converts a CSV question bank.
The fixed-column CSV layout
For a CSV to convert and import reliably, it must use fixed column fields. One question per row; the columns stay in the same place:
question,option_a,option_b,option_c,option_d,correct,image_url
"What is 2+2?","3","4","5","6","option_b",""
"Capital of FR?","Paris","London","Berlin","Madrid","option_a",""
- question — the prompt text.
- option_a–d — the choices, one per fixed column.
- correct — the correct option label that becomes the answer key.
- image_url — optional, but if present it must be a single external URL.
CSV formatting that prevents silent skips
- UTF-8 encoding — save the file as UTF-8 so accents and non-Latin scripts don't turn into garbage.
- Consistent delimiter — standard comma; if a value contains a comma, wrap it in double quotes.
- No shifting columns — every row uses the same fixed column fields. A row where options spill into different columns gets dropped.
- No empty headers — name every column so the converter can map it.
The image rule: one URL, exactly one
When a question needs a picture, Google Forms accepts only one image per question, and it must be a URL:
- One image, not two. A question with two diagrams won't import — choose the single essential one.
- A URL, not an embedded file. Put the hosted link in the
image_urlcolumn. Binary/embedded images have no place in a CSV.
Step-by-step: CSV → Google Form
Export clean UTF-8 CSV
One question per row, fixed columns, quoted commas. Keep the delimiter consistent.
Convert to a Form-ready file
Run the CSV through ExamParser, which maps the fixed columns and applies the one-image-URL rule.
Import into Google Forms
Bring the converted questions into a new or existing Google Form. The answer key carries over.
Preview and share
Preview as a respondent, confirm correct answers are marked, then send the link.
Why CSV → Google Form imports fail
- Expecting a native button — Google Forms has none for CSV; conversion is mandatory.
- Wrong encoding — a non-UTF-8 file mangles special characters and can break parsing.
- Unfixed columns — if option columns shift, the converter can't map rows and skips them.
- Image issues — more than one image per question, or an embedded (non-URL) image, is the common silent skip.
Meet the tool built for this
ExamParser parses your CSV with fixed column fields, supports xlsx import too, enforces one image URL per question, and outputs a Google-Form-ready file — answer key included. The same source feeds Canvas, Moodle, and other platforms, so you build the bank once.
Browse more import guides at examparser.com/blog/en.
Frequently asked questions
Can Google Forms import a CSV file directly?
No. Google Forms has no native CSV import. You convert the CSV into a Form-ready file first, then import that file. ExamParser reads CSV (and .xlsx) and performs the conversion.
What should the CSV look like for a clean import?
Save as UTF-8, use a consistent delimiter (comma), quote any value that contains the delimiter, and keep fixed column fields: question, options, correct answer, optional image URL. One question per row.
How are images handled in a CSV-to-Google-Forms import?
Each question may carry exactly one image, and it must be an external URL in the image column. Embedded or multiple images are not supported and cause the item to be skipped.
Can ExamParser convert my CSV into a Google Form?
Yes. ExamParser parses the CSV with fixed column fields, enforces one image URL per question, and emits a Google-Form-ready file so your question bank imports cleanly with the answer key intact.
Ready to convert your CSV?
Turn your CSV question bank into a Google-Form-ready file — UTF-8, fixed columns, one image URL per question — and stop re-typing.
Try ExamParser →