Import Spreadsheet
Bring your spreadsheet workout log into Anneal
If your training lives in a spreadsheet, you can bring it with you. Fill the template, download it as a CSV, and Anneal imports every session, set and weight.
Open the Google Sheet template (makes a copy) Download the template CSV Download the exercise name list
1. Copy the template
Open the Google Sheet and make a copy, or grab anneal-import-template.csv for Excel or Numbers. Both come with three sample sessions so you can see the shape; delete those rows before you add your own. The Sheet has the exercise names as a dropdown already.
2. One row per set
Copy your log in, one set per row. Rows that share a Workout Name and a Date become one session. Warm-ups get W in Set Order. Weight Unit is lbs or kg on every row, even a bodyweight one, so Anneal never has to guess. Write Reps or Seconds, not both. A distance needs a Distance Unit (m, km or mi).
3. Download it as a CSV
In Google Sheets: File, then Download, then Comma Separated Values. In Excel: Save As, CSV UTF-8. In Numbers: File, then Export To, then CSV. Keep the header row exactly as it is in the template; Anneal recognises the file by it.
4. Import it in Anneal
Open Settings, then Notifications & privacy, then Import workout history under Your data. Pick the file or paste its contents. Anneal shows every exercise name it could not match before anything is saved; pick the matching built-in exercise, or confirm a new custom one.
The template, in short
The header row is what Anneal recognises. Keep it exactly as is, and fill one set per row:
Date,Workout Name,Exercise Name,Set Order,Weight,Weight Unit,Reps,Seconds,Distance,Distance Unit,RPE
2026-01-05 08:00,Upper,Barbell Bench Press,W,95,lbs,10,,,,
2026-01-05 08:00,Upper,Barbell Bench Press,1,185,lbs,5,,,,8
2026-01-05 08:00,Upper,Barbell Bench Press,2,185,lbs,5,,,,8.5
2026-01-05 08:00,Upper,Lat Pulldown,1,120,lbs,10,,,,
| Column | What goes in it |
|---|---|
Date | YYYY-MM-DD, or YYYY-MM-DD HH:MM. Same value on every row of one session. |
Workout Name | The session name. Same value on every row of one session. |
Exercise Name | A built-in Anneal name where possible (see the list), or your own name for a custom exercise. |
Set Order | 1, 2, 3 for working sets. W for a warm-up. |
Weight | The load. Blank for bodyweight and cardio. |
Weight Unit | lbs or kg, on every row. |
Reps | Repetitions. Leave blank on a timed set. |
Seconds | Duration of a timed set or a cardio piece. Leave blank on a rep set. |
Distance | Cardio distance, with its unit in the next column. |
Distance Unit | m, km or mi. Required whenever Distance is filled. |
RPE | Optional, 1 to 10. |
Exercise names
Exercise names are where spreadsheet imports usually stall. Anneal compares names as a bag of words, so "Bench Press (Barbell)" and "Barbell Bench Press" match, but "BP" or "Flat bench 2ct pause" will not. A free account has 5 custom exercise slots, so match names to the library where you can. The Google Sheet template has the full list as a dropdown on the Exercise Name column; for Excel or Numbers, the same list is in exercise-names.txt: paste it into a column and use it as a dropdown.
Common questions
Does Anneal sync with Google Sheets?
No. This is a one-way CSV import. Export the sheet, import the file, and the history is in Anneal. You can import a newer export later; Anneal skips sessions it already has.
What date format works?
YYYY-MM-DD, optionally followed by a time as HH:MM. For example 2026-01-05 or 2026-01-05 08:00. Spreadsheet date cells usually need formatting to that pattern before export.
Can I mix lbs and kg?
Yes, per row. Each row carries its own Weight Unit. A row with the unit left blank imports in the unit you pick on the import screen, with a note that it did.
What about bodyweight sets?
Leave Weight blank, keep the Weight Unit, and fill Reps. Pull-ups and push-ups import as bodyweight sets.