Import Canvas Quiz Questions from Excel: A Step-by-Step Playbook
You have a spreadsheet full of questions — last semester's midterm, a colleague's shared bank, a publisher file, or a draft you built over the summer. Now you need those questions inside Canvas as a real quiz. The catch: Canvas never opens an .xlsx file. It only imports quizzes through a QTI package. This playbook walks the whole move, end to end, including the moment most guides skip: when the import only brings in half your questions.
Why Canvas can't just "open" your Excel file
Canvas stores quizzes in its own database and accepts new ones only through QTI 1.2, an XML standard that encodes each item's stem, answer key, and scoring. A spreadsheet is just cells; it carries no answer-key semantics or question types that Canvas can trust. So the job is always two moves: turn the sheet into QTI, then let Canvas import the QTI. The spreadsheet is the source; QTI is the bridge.
Path A vs. Path B (and why Path A wastes your afternoon)
- Path A — retype everything. Copy each question into the Canvas quiz builder by hand. It works, but for 50+ questions it is error-prone and you will hate it by question 12.
- Path B — convert, then import. Normalize the sheet into a QTI package and import once. This is the playbook below.
The import playbook, step by step
Clean the sheet to one question per row
Delete empty rows, split any question that spilled across two rows, and keep each option in its own cell. Headers can say anything; column order does not matter.
Convert the Excel file to a Canvas-ready QTI package
Upload the .xlsx to a converter that reads your layout, normalizes it, and exports QTI 1.2. ExamParser (via its Excel-to-Canvas tool) does this without a fixed template — you upload the sheet you already have.
Import inside Canvas
In your course, open Quizzes → the three-dot "More options" menu → Import, and select the downloaded .zip (QTI 1.2). Canvas rebuilds the quiz from the package.
Verify before you trust it
Open the new quiz, check the question count against your sheet, spot-check the answer keys, and preview one question in Student View.
When the import is partial (the part nobody warns you about)
It is common to import a 60-question sheet and see only 54 appear. Canvas silently drops rows it cannot parse. Fix the sheet, not Canvas:
- Answer key out of range. If the correct-answer index points past the last option, that row is skipped. Re-check the 1-based index (first option = 1).
- Merged cells in the options area. A merged option cell breaks column mapping. Put each option in its own cell.
- Stray commas or quotes. An unescaped comma inside a question can split one row into two. A good normalizer wraps these automatically; a raw export will not.
- Unknown question type. A free-text type label that is not recognized gets dropped. Standardize to the supported type codes before exporting.
Re-export the corrected sheet and re-import. Treat the spreadsheet as the source of truth — edit there, not inside Canvas — so the next term's import starts clean.
After the questions are in Canvas
- Move them to a question bank if you want to reuse them across quizzes (see our guide on building a Canvas test bank).
- Preview in Student View before publishing — answer keys and formatting are easiest to confirm here.
- Regrade once after the first real attempt to catch any miskeyed correct answers early.
Meet the tool built for this
ExamParser is a converter purpose-built for moving exam content between spreadsheets and LMS platforms. Its Excel-to-Canvas flow reads whatever layout you already use, normalizes each row into a standard structure, and exports a Canvas-importable QTI 1.2 package — no reformatting template required. If you work across multiple platforms, the same source sheet can also feed Moodle, Blackboard, and others.
Browse more import guides at examparser.com/blog/en.
Frequently asked questions
Can I import only some of the questions from my Excel file?
Yes. Before converting, delete the rows you do not want, or move the questions you do want into their own sheet. Each uploaded sheet is treated as one question set, so controlling the rows controls what gets imported.
Canvas says 0 questions were imported. What went wrong?
This usually means the answer key or question type was not recognized. Check that every row has exactly one question, the correct option is marked with a valid 1-based index, and question-type codes are recognized. Re-download the QTI and re-import after fixing the offending rows.
Can I update questions after they are already in Canvas?
You can re-import a corrected QTI package, but Canvas treats it as a new quiz unless you edit in place. The cleaner path is to keep the source spreadsheet as the single source of truth, fix it there, and re-export. Edit individual items inside Canvas only for one-off tweaks.
Does this work with New Quizzes or only Classic Quizzes?
The QTI 1.2 export targets Classic Quizzes. If your school runs New Quizzes, import into Classic first, then use Canvas's built-in migration to convert the quiz to a New Quizzes item bank.
Ready to move your sheet?
Upload the Excel file you already have — no reformatting required — and download a Canvas-ready QTI package in minutes.
Try ExamParser →