Import a Spreadsheet


If you’ve been keeping your boat’s maintenance history in Excel, Numbers, or another spreadsheet, you can bring it into Ballast rather than typing it in again. Ballast reads an Excel workbook (an .xlsx file), which Excel, Numbers and Google Sheets can all save, or a CSV file, a plain-text copy of a spreadsheet.

This takes three steps: tidy up a copy of your spreadsheet so Ballast can read it, save that copy as an Excel workbook, then import the file in Ballast. The steps below are for an Excel workbook, the easier of the two because your dates come through as they are. If you’d rather use a CSV file, follow them too, then see Using a CSV file instead for what’s different.

Short on time? Download the template as an Excel workbook or a CSV file, paste your records into it, and skip to saving it.

What comes in

Each row of the spreadsheet becomes one entry in your boat’s service log, with a date, a title, notes, and which engine the work was on and what its hour meter read.

A spreadsheet brings in the service log and nothing else. To-dos, custom properties, photos and documents can’t be imported this way, so add them in Ballast afterwards. An engine the spreadsheet names is matched to your boat’s engine of that name, or added if your boat doesn’t have one.

The entries are added to your boat’s log. Nothing already on your boat is changed or deleted.

1. Make a copy

Work on a copy of your spreadsheet, not the original. You’ll be renaming columns and tidying rows, and your original should stay the way you like it. In Excel or Numbers, choose File ▸ Duplicate, or Save As with a new name.

If your log is spread across several sheets or tabs, for example one per year, put all the rows onto one sheet. Ballast reads only the first sheet of a workbook.

2. Set up the columns

One row holds the column names, above your records, and Ballast recognizes these five:

Column nameWhat goes in itNeeded?
dateThe day the work was done.Yes
titleA short name for the job, like “Oil change”.No
notesWhat was done, parts used, anything you want to remember. Can be as long as you like.No
engineNameWhich engine the work was on, like “Main” or “Port”.No
engineHoursThe engine’s hour meter reading at the time, like 1204.5.No

Rename your existing column headings to match the names above:

Here’s what a finished sheet looks like:

datetitlenotesengineNameengineHours
2024-04-12Spring haul-outBottom paint, new zincs on shaft and rudder.
2024-05-03Oil changeChanged oil and filter. 4.5 qt 15W-40.Main1204.5
2024-08-19ImpellerReplaced raw water impeller.Main1288
2024-09-02Outboard serviceLower unit oil and spark plugs.Dinghy86

3. Check each column

Dates

Every row needs a date, and any cell your spreadsheet treats as a date comes through as the right day, however it’s displayed and wherever in the world the file was made.

Look down the column for dates that sit on the left of their cell: those are text, not dates. Retype them so your spreadsheet recognizes them, or write them year-month-day with dashes, like 2024-05-03.

Ballast won’t import a file with an undated row, and tells you which row it is. If you don’t know exactly when some work was done, give it your best guess, like the first day of the month, and say so in the notes.

Engine hours

Hours must be a number, however it’s displayed. Remove any “hrs” or other text by hand, and leave the cell empty when there’s no reading.

Hours are kept only on a row that also names an engine, so fill in engineName wherever you have engineHours.

Engine names

Each engine name in the spreadsheet is matched to the engine of that name on your boat, or becomes a new engine if there isn’t one. Spell each engine the same way on every row, and the way your boat already names it. Capitals don’t matter, so “main” and “Main” are one engine, but spelling does: “Main Engine” and “Main” are two.

An engine’s hours go up to the highest reading your log records for it, and never down.

Totals and other extra rows

Delete any totals, subtotals, headings or notes rows mixed in with your records. Every row except the column names becomes an entry. Empty rows are fine; Ballast skips them.

4. Save it as an Excel workbook

Excel: an .xlsx workbook is what Excel saves already, so just save your copy. If it’s an older .xls file, choose File ▸ Save As and set the format to Excel Workbook (.xlsx).

Numbers: choose File ▸ Export To ▸ Excel.

Google Sheets: choose File ▸ Download ▸ Microsoft Excel (.xlsx).

5. Get the file onto your iPhone or iPad

Put the file somewhere the Files app can see it:

6. Import it

Importing adds your spreadsheet’s entries to your boat. Nothing already there is deleted, so you can import into a boat you’ve been using. When the import is done, Ballast tells you how many entries and engines it added.

Import a spreadsheet once. Importing the same file again adds its entries again, so you’d have two of each. If you find a mistake afterwards, fix the entry in Ballast rather than importing again.

On iPhone:

  1. Tap your boat’s picture in the top-left corner of the screen.
  2. Tap the ••• button, then tap Import Spreadsheet….
  3. Find your file and tap it.

On iPad: open the tab with your boat’s name, tap •••, and tap Import Spreadsheet….

On a Mac: choose File ▸ Import Spreadsheet…

7. Check the result

Open the Log tab and compare it with your spreadsheet. The number of entries Ballast said it added should match your number of rows. Check that engine names came through as you expected: on your boat’s screen, look for engines you didn’t mean to add, like both a “Main” and a “Main Engine”. If an entry came in wrong, edit it or delete it like any other.

Using a CSV file instead

A CSV file is plain text, so it loses what your spreadsheet knows about dates and numbers. Everything above still applies, with three differences.

Dates

In a CSV file, every date must be written year-month-day with dashes: 2024-05-03. Ballast won’t read 5/3/2024, 3 May 2024 or 2024-05-03 10:30 from a CSV, and the import stops with an error.

A spreadsheet saves dates to a CSV the way it shows them, so change how the date column is displayed before saving:

Then look down the column. A date that stays in its old form or sits on the left of its cell is text, not a date, so formatting doesn’t change it. Retype it by hand.

Engine hours

In a CSV file, hours must be a plain number: 1204.5, not 1,204.5. In Excel, select the column, choose Format ▸ Cells ▸ Number, and turn off Use 1000 Separator.

Saving

Excel: choose File ▸ Save As, and set the file format to CSV UTF-8 (Comma delimited). It’s called File Format on a Mac and Save as type on Windows.

Numbers: choose File ▸ Export To ▸ CSV. Under Advanced Options, set Text Encoding to Unicode (UTF-8).

Choose UTF-8 in either app. Other CSV options work too, but accented letters and symbols such as é or ° may come through garbled.

Excel may warn that some features will be lost. That’s expected: CSV keeps only the text in your cells. Click Keep Current Format or Yes.

If your computer is set to a region that writes numbers with a decimal comma, like 1204,5, Excel may separate columns with semicolons instead of commas. To check, open the CSV file in TextEdit or Notepad: the first line should read date,title,notes,…. If you see semicolons, save from Numbers instead, or change the list separator in your computer’s region settings.

If something goes wrong

“Row 12 has no date.” That row of your spreadsheet has something in it but no date. Give it a date, or delete the row if it’s a total or a note, then save the file again. Nothing was imported.

“This spreadsheet has no date column.” No row near the top names a date column. Check that your column names are within the first 11 rows, on the first sheet, and rename your date column. Nothing was imported.

“This Excel file couldn’t be read.” The file isn’t an Excel workbook Ballast can open, or it’s damaged. Open it in your spreadsheet app and save it again as an Excel workbook (.xlsx), or save it as CSV. Nothing was imported.

“The data couldn’t be read because it isn’t in the correct format.” A date or an hours figure is in a form Ballast can’t read. Check the date column for dates typed as text, which need the 2024-05-03 form, and the engineHours column for text like “hrs”. In a CSV file, also check that every date is written 2024-05-03 and every hours figure has no commas. Nothing was imported, so fix the file and try again.

“The columns “Hours” and “Engine Hours” are the same.” Two column names mean the same thing. Rename or delete one of them, then save the file again. Nothing was imported.

Entries came in with no title, notes or engine. The column names don’t match. Check the spelling against the table above: engineName or Engine Name, not Engine Model. Importing again would add the entries a second time, so either delete the ones that came in and import the corrected file, or fix them in Ballast.

There’s an engine you didn’t expect. The spreadsheet spells an engine differently from your boat, or one engine two ways. Choose the right engine on the entries that came in on the extra one, then delete it.

Still stuck? Hail us with a description of what happened. It helps if you can attach the first few rows of your file.