Inchgrove spreadsheet guide

Adding and updating records from CSV files: what each column takes, how rows link to each other, and the mistakes that are easy to make.

The spreadsheet tools are in Settings → Backup & Sync → Edit in a Spreadsheet. The quickest start is an export of what you already have (Export trees for editing and the like): it has every column filled in the way the import reads it. Blank templates and the values sheet are under Or start from a blank template. When your files are ready, use Choose files to import. You can choose several files at once.

Nothing is written until the whole batch is right. The app first shows what the import would do, and lists every problem with its file and line. Import stays unavailable until there are none, so a file is never half imported. An import adds and updates records; it never deletes one or clears a value.

The seven files

Each file holds one kind of record. The app tells them apart by a column only that kind has, so the file name and the order of the columns don't matter.

File One row is Recognised by the column
Species a species Hardiness Zone
Trees a tree Growing In
Pots a pot, or a set of identical pots Tree Key and Material together
Jobs a job Due Date
Diary a diary entry Diary Entry
Measurements a tree's trunk and height on one day Trunk Diameter (mm) or Height (cm)
Photos a photo or video File
  • You can delete the columns you don't need, but keep the one that names the file's kind, even if every cell in it is blank. A pots file without its Tree Key column isn't recognised.
  • Keep the column names exactly as they are, in English, whatever language the app is in. A file whose header row has been renamed or translated is listed as not recognised.
  • Files chosen together are one import, applied in the order species, trees, pots, jobs, measurements, diary, photos. So a pots file can put a tree from the trees file into a pot, both new in the same import.
  • The values sheet is reference only. It is never imported.

Add or update: the Key column

Every file except species has a Key column. It decides what a row does.

  • The id of a record you have, as an export writes it: the row updates that record.
  • Blank: the row adds a new record.
  • Any other text: the row adds a new record, and the text becomes a name the other files in the same import can use to point at it. Give a new tree the Key maple-1, and a pot row can hold it with Tree Key maple-1. The name lasts for that one import; afterwards the record has an id of its own, which the next export shows.
A mistyped Key adds a record instead of updating one. An id that is cut short or edited no longer matches anything, so the row is read as new text, and the import adds a second copy of the tree. The preview lists rows whose Key looks like an exported id but matches no record. It also counts new and updated records for each kind, and tapping a count lists their names.

Species rows have no Key. A species is matched by its Genus, Species and Cultivar together, ignoring capitals and surrounding spaces. To rename a species, put its id in Species ID and the new names beside it.

Blank cells

  • On an update row, a blank cell means “leave this as it is”, never “clear it”. That is why unneeded columns can be deleted. To clear a value, edit the record in the app.
  • On a new row, a blank cell leaves the field unrecorded, or at its usual default.
  • Deleting a row from the file doesn't delete the record. Records are deleted in the app.
Column In Names
Tree Key pots, jobs, diary, measurements, photos a tree: its id from an export, or the Key of a row in a trees file in the same import
Pot Key photos a pot: its id, or the Key of a row in a pots file in the same import
Species ID species, photos a species you already have, by its id in the species export, which lists your own species and the built-in ones your trees use
  • Trees go into pots from the pots file. The trees file has no pot column. A pot row's Tree Key lists the trees in it, separated by ;. A single pot holds one tree; a set (Quantity above 1) holds as many as it has pots.
  • Listing a tree adds it to the pot. A tree already in the pot stays there, and a blank Tree Key leaves the pot's trees alone. Taking a tree out of a pot is done in the app.
  • Putting a tree into a single pot that holds another tree turns that tree out of it, as repotting in the app does. The preview says when an import does this.
  • A job or diary entry with a blank Tree Key belongs to the whole collection. A measurement always needs one.
  • A photo names at most one owner: a tree, a pot or a species. With all three blank, it belongs to the collection.
  • A job, diary entry, measurement or photo stays with the owner it was added to. On an update row, a job's Tree Key is ignored, and a diary entry, measurement or photo naming another owner is reported as a problem.

Formats

Kind of cell Write it as
Date YYYY-MM-DD, as in 2024-08-12. It must be a real day: 2025-02-30 is refused. See dates below.
Date and time YYYY-MM-DD HH:MM on the 24-hour clock, as in 2024-08-12 15:04, or the date alone. No seconds.
Number Digits, with a decimal point or a decimal comma (24.5 or 24,5). No thousands separator, and no unit: the unit is in the column name.
Money A bare amount of 0 or more, with at most two decimal places: 45, 45.50. No currency symbol and no thousands separator, so 1,500 is refused rather than read as 1.5. Amounts are in the collection's currency.
Whole number Tag and Quantity: 1 or more, no decimals.
Yes or no Yes or No, in any capitals.
List Items separated by ;, as in Japanese maple; Red maple.
Text Anything, including line breaks in the longer fields. Spaces at either end are dropped.
  • Save the file as CSV with UTF-8 encoding. In Excel, choose CSV UTF-8 when saving; another encoding garbles accented names.
  • Commas, semicolons and tabs all work as separators. The import detects which one the file uses, so a file saved by a spreadsheet app in any language reads correctly.

Choice values

Most choice columns take any text. These are Style, Size, Stage, Source, Material, Colour, Texture, Shape, Condition, General Type, the archive reasons and a photo's Tag. A value the app doesn't have is added as a new one, exactly as typing it into the app's own picker would. The values sheet lists the app's spellings. Use them, or “Gray” and “Grey” become two colours.

Write the English values even when the app shows another language. The app translates its own values for display, but it can't tell a translated value from a new one: “Braun” in a colour column is stored as a colour called Braun.

A few columns take only a fixed set of values, and anything else is reported as a problem:

Growing In (trees)

  • Pot
  • Ground

Container Volume (L) (trees)

The nursery container a tree is in, for a pot not catalogued as a record of its own. These are the sizes containers are sold in, in litres:

  • <1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 7
  • 10
  • 15
  • 20
  • 25
  • 30
  • 40
  • 50
  • 60
  • >60

Winter Shelter (trees)

Blank on a new tree means it winters in the open.

  • Under cover
  • Frost-free

Type (jobs)

What kind of job it is: it picks the job's icon and which recipe the job can record. Blank on a new job leaves the app to tell from the job's text, as it does for jobs added before types.

  • repot
  • fertilise
  • prune
  • wire
  • woodwork
  • inspect
  • pestControl
  • maintenance
  • winterProtect
  • other

Leaf Fall (species)

  • Deciduous
  • Evergreen
  • Semi-evergreen

Hardiness Zone (species)

The USDA zone, a whole number from 1 to 13: the coldest zone the species takes.

Columns, file by file

Species

Only needed for what a tree row can't say: common names, hardiness, leaf fall, family, general type. A tree row names its species itself.

Column Takes Notes
Species ID a species' id Blank on most rows. Fill it in only to rename the species it names.
Genus text Required.
Species text
Cultivar text
Family text
Common Names list The English names. They replace the English list; names in other languages stay.
General Type choice See the values sheet.
Leaf Fall fixed choice Listed above.
Hardiness Zone 1 to 13
Flagged yes or no

A row that matches a built-in species changes your copy of it; the catalogue's own entry is untouched. A row that only restates a species changes nothing.

Trees

Column Takes Notes
Key id or text The Key column.
Tag whole number The tree's number. No two trees share one.
Name text
Genus text Required for a new tree. With Species and Cultivar it picks the tree's species; a combination the app doesn't have is added as a species of your own. Blank on an update row keeps the species.
Species text
Cultivar text
Style choice
Size choice
Stage choice
Acquired date
Growing In Pot or Ground Blank on a new tree means a pot.
Container Volume (L) fixed choice Listed above.
Description text Up to 4000 characters.
Development History text Up to 4000 characters.
Flagged yes or no
Archived Date date Archiving.
Archive Reason choice
Archive Note text Up to 1000 characters.
Purchase Price money
Value money
Valued On date When the value was put on it.
Winter Shelter fixed choice Listed above.
Source choice Where the tree came from, such as Nursery stock.

Pots

Column Takes Notes
Key id or text The Key column.
Tree Key list The trees in the pot. Linking records.
Tag whole number No two pots share one.
Name text
Material choice Required for a new pot.
Colour choice
Texture choice
Shape choice
Length (cm) number Up to 200.
Width (cm) number Up to 200, and no more than the length.
Depth (cm) number Up to 200.
Size choice
Glazed yes or no
Maker text
Condition choice
Acquired date
Quantity whole number How many identical pots the row stands for, up to 999. Blank on a new pot means 1. It can't go below the number of trees in the set.
Notes text Up to 4000 characters.
Flagged yes or no
Archived Date date Archiving.
Archive Reason choice
Archive Note text Up to 1000 characters.
Purchase Price (per pot) money For one pot: a set's total is this times Quantity.
Value (per pot) money For one pot, as the price.
Valued On date

Jobs

Column Takes Notes
Key id or text The Key column.
Tree Key a tree Blank for a job for the whole collection.
Text text Required, on update rows too.
Due Date date Required, on update rows too.
Completed Date date Marks the job done on that day. A job already done stays done; reopening one is done in the app.
Type fixed choice Listed above.

Repeating jobs and the recipes linked to a job (soil mix, fertiliser, pest treatment) have no columns. Set them in the app.

Diary

Column Takes Notes
Key id or text The Key column.
Tree Key a tree Blank for the collection's own diary.
Date date, or date and time Required, and not after today. A date alone is entered at midday.
Diary Entry text Required. Up to 1000 characters.
  • An update row changes the entry's text. Its tree and date stay as they were.
  • A new row restating an entry already held (the same tree, text and day, or the same minute when the row gives a time) adds nothing, so importing a file twice is harmless. Two rows with the same text on one day need times to be kept as two entries.
  • Entries dated by day alone keep their order in the file.

Measurements

Column Takes Notes
Key id or text The Key column.
Tree Key a tree Required.
Date date Required, and not after today.
Trunk Diameter (mm) number 1 to 1000, rounded to whole millimetres.
Height (cm) number 1 to 300.
  • A row needs a diameter, a height or both.
  • A tree has one measurement per day. A new row for a day already measured fills in a figure the day lacks and changes nothing when the figures match. A different figure is reported as a problem.
  • To correct a figure, use the measurement's Key from an export: an update row replaces the figures it gives. The tree and date can't change.

Photos

Column Takes Notes
Key id or text The Key column.
Tree Key a tree At most one of the three. All blank: the collection.
Pot Key a pot
Species ID a species
File a file name Required. The name alone, without a folder, as in IMG_0412.jpg.
Date Taken date, or date and time Not after today. Blank means the time of the import.
Caption text One line, up to 200 characters.
Tag choice The view, such as Front or Nebari.
  • Where the files come from. After reading the rows, the app asks for the folder that holds the files. Each name in File must be in that folder. A name differing only in capitals is accepted.
  • An exported photos file names each file as a .zip backup stores it. Unzip a backup and choose that folder. The folder that Export Photos… writes, under Export for Other Apps, won't do: it renames photos for reading.
  • An update row changes only the caption and the tag. A photo's owner, file and date stay as they were.
  • A new row naming a file the owner already has adds nothing.
  • The app checks there is room for the new files before writing anything. A file too large for the app is skipped and named when the import finishes.

Archiving

A date in Archived Date on a tree or pot that isn't archived archives it, with the same effects as in the app:

  • Archiving a tree cancels its open jobs and takes it out of its pot.
  • Archiving a pot takes the trees out of it, unless the same import archives them too: then they leave together.

The preview lists these changes, which reach records the file doesn't mention. A blank Archived Date doesn't bring a record back; restoring is done in the app.

Common mistakes

Dates rewritten by the spreadsheet app

The import's most common problem. Excel and other spreadsheet apps read 2024-08-12 as a date, show it in your computer's short format, and save it that way: 12/08/2024, 08/12/2024, 12.08.2024 or 2024/08/12. The import refuses all of them, since 07/08/2024 could be either of two days. When it finds one, the list of problems says so. To fix it:

  • In Excel, select the date columns, open Format Cells, choose Custom and enter yyyy-mm-dd. Excel spells the codes in its own language, for example JJJJ-MM-TT in German or aaaa-mm-jj in French. Then save as CSV again.
  • Before typing new dates, format the columns as Text, so what you type is kept as typed.
  • When opening a CSV, LibreOffice's import dialog lets you set the date columns' type to Text. Google Sheets' File → Import has an option to stop converting text to dates.

Excel can do the same to money. A column formatted as currency saves £45.00, which the import refuses. Keep those columns as plain numbers.

A misspelt species adds a new one

Acer palmatun isn't an error: no species has that name, so the import adds one. The preview asks about a new species whose name is a letter or two away from one the app already has. It can't catch every typo, so check the new species it counts too.

A new spelling adds a new value

In the choice columns, “Teracotta” is stored as a material of its own, beside “Terracotta”. Copy values from the values sheet or an export.

The apostrophe at the start of some cells

An export puts ' in front of text starting with =, +, - or @. Without it, a spreadsheet app would run a name such as =SUM(…) as a formula. Leave it in place: the import takes it off again.

Unchanged rows

Species, job, diary, measurement and photo rows that restate what the app holds change nothing, and the preview counts them as already up to date. Tree and pot rows with a Key are always counted as updated, changed or not: delete the rows you didn't edit to see only the ones you did.