All guides

Importing your cellar from a spreadsheet

Published September 13, 2026 · 3 min read

Preparing a file that imports first time: expected columns, formatting traps, and the check to run immediately afterwards.

A cellar spreadsheet already contains everything needed. Migration is the work of making it machine-readable, which takes twenty minutes done in the right order and a whole evening improvised.

Before touching the file

Make a copy. Everything below happens on the copy, never the original — you will need it to verify the import, and possibly to start again.

The columns the import expects

The simplest route is to start from the template downloadable on the import screen: it carries the recognised headings and one example row. The supported fields are:

  • Producer, cuvée Name, Colour, Year (vintage)
  • Region, Sub-region, Appellation, Grape
  • Purchase quantity, Remaining, Location
  • Purchase price, Value, Purchase date, Place of purchase
  • Drink from, Drink until — the two ends of the drinking window
  • Pairings, Comment, Reference

Column matching is fuzzy: Producer, Estate and producer all land in the same field. So you do not have to rewrite your headers, only to check afterwards that nothing was ignored.

The five formatting traps

1. Non-numeric vintages. NV, "no year", "2018/2019" do not convert. Empty the cell rather than writing something: a blank field imports cleanly, an unreadable value is rejected.

2. Quantities written out in words. "six bottles" produces an error row. Write 6.

3. Prices with currency symbols. "€24.50" travels badly between spreadsheets. Prefer 24.50 and leave the currency out.

4. Merged cells and subtotal rows. They shift the reading. Delete them from the copy.

5. Multiple sheets. Keep one. If your file splits reds and whites across two tabs, concatenate them first, with a Colour column.

The check that follows the import

Do not move on until these three controls are done.

  1. The count. Does the number of wines imported match the number of rows in the file, minus the rejected rows reported?
  2. The bottle total. This is the control that catches a misread Quantity column: if every wine shows one bottle where you had three, the column was not read.
  3. Three records at random. Open three and compare them to your spreadsheet, field by field. It is the only control that catches a column offset.

After the migration

If your spreadsheet held no drinking windows — the most common case — your wines arrive without an ageing range. Fill them in batches, starting with the oldest bottles: those are the ones at risk of closing while you deal with the rest.

What to remember

  • Work on a copy, and start from the supplied template.
  • Empty unreadable cells rather than writing text into them.
  • One sheet, no merged cells, no subtotals.
  • Check the count, the bottle total, and three records at random.

Frequently asked questions

Do I need to rename my columns before importing?
Not necessarily. The import recognises several common headings for each field — Producer, Estate, producer — and maps them itself. Renaming only becomes useful if a column goes unrecognised after a first attempt.
Which file formats are accepted?
CSV and Excel (.xlsx, .xls). CSV is more predictable: it carries no formulas, merged cells or multiple sheets, which are the three usual causes of a partial import.
What happens if a row is invalid?
It is skipped and reported, without cancelling the rest of the import. That is the desirable behaviour: a two-hundred-row file should not be rejected wholesale because one vintage was entered as NV.