CSV Import for Flashcards: From Spreadsheet to Space Deck

Space Team ·

CSV Import for Flashcards: From Spreadsheet to Space Deck

Space imports any plain CSV and turns each row into a card. Add one more column and your cards land directly inside their groups, ready for spaced repetition with FSRS-6. No reopening the deck and dragging cards around after the import.

The CSV format Space expects

A working CSV has two columns: front side first, back side second. One row per card. Put a header on the first row so Space knows which column is which.

Front, Back
Bonjour, Hello
Au revoir, Goodbye
Merci, Thanks

Save the file as UTF-8 and use a comma as the separator, following RFC 4180. If a value contains a comma, wrap it in double quotes:

Front, Back
"Hello, world", "Salut le monde"

That is the whole format. Hand Space any file shaped like this and each row becomes a card.

Coming from Anki? Export your deck as CSV first

If you are switching from Anki, you do not have to retype your cards. Anki exports notes as plain text, which is close enough to CSV for Space to read after a small tweak.

In Anki, open the deck and choose File → Export → Notes in Plain Text (.txt). Untick “Include HTML and media references” if you want clean text, or keep it if your cards rely on formatting. Anki writes a tab-separated file with one note per line.

Space expects a comma as the field separator, not a tab. Open the exported file in Excel, Numbers, or Google Sheets and save it again as CSV. The spreadsheet handles the conversion for you, including quoting values that already contain commas.

Add a Front and Back header row at the top, drop in a Group column if you want to keep your sub-decks, and you are ready to import. If you would rather skip the spreadsheet step, you can also import an Anki deck directly without going through CSV at all.

With groups

Add a third column named Group and each card lands in the group you name. Reuse the same name on multiple rows to put them in the same group.

Front, Back, Group
Bonjour, Hello, Chapter 1
Au revoir, Goodbye, Chapter 1
Merci, Thanks, Chapter 2
Je suis désolé, Sorry, Chapter 2

Group matching is case-insensitive and ignores leading or trailing whitespace. Chapter 1, chapter 1, and Chapter 1 all land in the same group. If the group already exists in the target deck, Space reuses it. If it does not, Space creates it.

Re-importing the same file adds the cards again rather than updating the existing ones, because Space does not deduplicate by content. To refresh a deck with a corrected CSV, delete the old cards first.

Round-trip safe

Space also exports decks with the group column filled in. Export, edit in a spreadsheet, re-import into a fresh deck, and the structure comes back unchanged.

Export CSV from Excel, Numbers, and Google Sheets

Every spreadsheet app can save as CSV. The exact menu path changes, the result does not.

Microsoft Excel. File, Save As, pick CSV UTF-8 (Comma delimited) (.csv). Older versions call this CSV (Comma delimited); pair it with UTF-8 encoding if the dialog asks. See Microsoft Excel CSV UTF-8 support for the full list of options per Excel version.

Apple Numbers. File, Export To, CSV. Under Advanced Options, set text encoding to Unicode (UTF-8).

Google Sheets. File, Download, Comma-separated values (.csv). Sheets exports as UTF-8 by default. The official Google Sheets export page documents the available formats.

If a preview of your CSV shows question marks or odd characters, the encoding is wrong. Re-export as UTF-8 and try again.

Group column names in 15 languages

The Group header works in every Space language. Write it in the language your deck is in and Space picks it up.

LanguageHeader
EnglishGroup
GermanGruppe
SpanishGrupo
PortugueseGrupo
FrenchGroupe
ItalianGruppo
DutchGroep
PolishGrupa
SwedishGrupp
TurkishGrup
RussianГруппа
Japaneseグループ
Korean그룹
Chinese分组
Arabicمجموعة

The front and back columns always come first and second, whatever you label them.

Limits and Performance

Most CSVs you will throw at Space are small enough that the import finishes in seconds. We have tested decks up to roughly 50,000 cards in a single file without issues. Beyond that, performance still holds, but very large files take longer to process and the progress indicator may sit at high percentages for a while as Space writes everything to its local database.

If you have a much bigger collection, split the file into batches by group or chapter. Smaller imports are easier to verify, and a failed batch is easier to retry than a failed multi-hundred-thousand-row file.

A note on duplicates: Space does not deduplicate by card content. Importing the same row twice creates two cards. If you re-run an import after a fix, clear the old cards first or import into a fresh deck.

Special characters, formulas, and HTML in cells

Save your file as UTF-8 and the rest tends to take care of itself. Accented Latin characters, Cyrillic, Greek, CJK scripts, Arabic, and emojis all survive the round trip from spreadsheet to Space.

Math formulas work too. Wrap inline math in single dollar signs and display math in double dollar signs, the same syntax Space uses everywhere else. $E = mc^2$ and $$\int_0^1 x^2 \, dx$$ render as proper formulas on the card after import.

HTML in cells is partly rendered. Basic formatting tags like <b>, <i>, <u>, and line breaks come through. Script tags and unknown markup are escaped, so an Anki export with stray HTML will not break anything, just show as plain text. If a card looks too cluttered after import, strip the tags in your spreadsheet and re-import.

CSV import troubleshooting

💡

Space did not recognize my Group column

Check that Group (or its translation) sits in the header row, not in a data row. The header must be the very first line of the file.

💡

My group name contains a comma

Wrap the cell in double quotes: "Unit 3, advanced". Your spreadsheet app does this automatically when you save, so this mostly affects hand-typed files.

💡

Can I re-import to update existing cards?

Not directly. A re-import adds the cards as new entries. To update a deck, delete its cards first, then import the corrected CSV.

Round-trip: export, edit, re-import

Space exports decks in the same format it reads. Export a deck as CSV, edit the content in your favorite spreadsheet app, and import it back. Group structure and card order survive the round trip.

Prefer markdown? See our Obsidian integration. And if you live in the terminal, you can manage decks from the command line without opening a spreadsheet at all.

Download Space and try the flow with your own spreadsheet.