Messy spreadsheets
Import the file you have, not the file the importer wants
A report with a title above the header. Subtotals and a grand total. A company name on its first row only. A workbook with six sheets. An import that expects one tidy table per file cannot take any of these as they are. Sloose reads the file as it is, and shows you the rows it will import before anything is written.
Formatting CSV files for import: title rows and totals rows
This sales report was made for people to read. It has a title and a date above the column names, the region only on its first row, a subtotal under each region, a grand total and a footnote.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Regional Sales Report — Q3 2026 | ||||
| 2 | Generated 01/10/2026 by Reporting | ||||
| 3 | |||||
| 4 | Region | Account | Account manager | Orders | Revenue |
| 5 | North | Copperleaf Studio | Jordan Avery | 14 | $21,340.00 |
| 6 | Ironbark & Finch Builders | Jordan Avery | 9 | $58,900.00 | |
| 7 | Harbourline Freight | Mei Tanaka | 22 | $34,115.50 | |
| 8 | Subtotal North | 45 | $114,355.50 | ||
| 9 | South | Willowmere Dental Group | Ravi Patel | 6 | $7,800.00 |
| 10 | Bluegum Physio | Ravi Patel | 11 | $12,045.00 | |
| 11 | Subtotal South | 17 | $19,845.00 | ||
| 12 | Grand total | 62 | $134,200.50 | ||
| 13 | * Revenue excludes GST. Internal use only. |
The header row
In an .xlsx, Sloose finds the header row by itself when a title sits above it, and shows which row it chose, numbered as Excel numbers rows. You can type another. It only skips a row that is nearly empty next to the rows below it, so a header with one blank column name is kept.
A recipe you can read
For a CSV or pasted text, ask the assistant on Source, for example "Is anything wrong with this file?". It can answer with a recipe:
- Use row 4 as the header
- Leave out the subtotal, grand total and footnote rows
- Fill down Region
Each step is one of a few named operations: use a row as the header, name the columns of a file that has none, leave out rows, rename or remove a column, and fill down. A recipe changes the file's shape. It never rewrites a value that is there. Nothing changes until you press Use this.

Or a row filter
With the header in place, a row filter leaves out every row that names no account: the subtotals, the grand total and the footnote.
row.Account !== ''The rows it holds back are counted as filtered, and the foot of the page counts the rows that will import.
Next month's report
A template keeps the reshape recipe and the row filter, so next month's report is reshaped the same way as it arrives, free, and its totals rows are left out too. If the new report no longer fits the recipe, it loads as read and says why, and asking the Source assistant again uses AI credits. In an .xlsx, the header row is found again by itself.
Grouped layouts: the company once, the people under it
A directory like this one names each company once and lists its branches and people under it. Exported from a merged cell, every row but the first is blank in that column.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Company | Branch | Contact | Role | Direct line | |
| 2 | Harbourline Freight | Head office | Mei Tanaka | Account Manager | (08) 5550 4403 | mei@harbourline.example |
| 3 | Dev Sharma | Dispatch | (08) 5550 4404 | dev@harbourline.example | ||
| 4 | Port depot | Olivia Brooks | Depot Lead | (08) 5550 4410 | olivia@harbourline.example | |
| 5 | (vacant) | Night shift | ||||
| 6 | Willowmere Dental Group | Hobart | Siobhan McAllister-Hart | Practice Manager | (03) 7010 5501 | siobhan@willowmere.example |
| 7 | Launceston | Ben Duarte | Practice Manager | (03) 7010 5502 | ben@willowmere.example | |
| 8 | Kate Duarte | Reception | (03) 7010 5503 |
A mapping formula reads one row at a time, so it cannot see the row above. Fill downcan: it carries the last value down into the blank cells under it. Fill down Company and Branch, and every person has both.
Then a row filter leaves out the vacant position:
row.Contact !== '(vacant)'Fill down only what is grouped
Kate Duarte, on row 8, has no email. Fill down the Email column too and she gets Ben Duarte's address. Each recipe step names its column, so you can see which columns it fills.
Import Excel into your CRM without saving as CSV
Converting a workbook to CSV is an extra step, and every trip through a spreadsheet is a chance for a value to change. Sloose reads the .xlsx itself.
Text stays text
A cell stored as text keeps its leading zeros: 00123 arrives as 00123.
Dates arrive as dates
A cell stored as a date arrives as 2026-10-15, whatever the sheet displayed. That form means the same day in Sydney, London and New York.
Numbers without their formatting
A cell displayed as $1,234,567.50 arrives as 1234567.5, which a currency field accepts.
Formulas give their saved value
A formula cell gives the value Excel last saved, which is usually the number you last saw.
.xls (the pre-2007 format) and .ods cannot be read. Open either and save it as.xlsx.
Import Excel with multiple sheets
Upload a workbook and every worksheet is listed with its size. Click a sheet to look at it, as it would be read, without changing the import. Tick the ones you want.
- Each ticked sheet becomes its own file in the import, with its own columns, cleaning and mapping.
- All of them are imported in one run, in the order their links need.
- A sheet that cannot be read fails on its own and is named. The other sheets still load.
- A workbook with one sheet loads as it arrives, with nothing to tick.
Sheets that refer to each other, such as organisations on one sheet and people on another, link by value.More than one file, in the docs, shows how.

CSV, tab-separated, or pasted straight in
The delimiter is worked out
Sloose detects the delimiter and shows what it found, so you can change it. Comma, tab, semicolon, pipe and space are offered, which covers a European CSV that uses semicolons.
Paste text
Copy rows from anywhere and paste them in. Two pasted extracts make an import of two files.
Clean up without touching your file
Sloose counts duplicate rows and names them. Leave a row out, or edit a cell, and the change belongs to this import. Your original file is untouched.
If you edit the same problem in twenty rows, it is a mapping problem: one formula fixes every row. SeeAI mapping.
Related
AI mapping
Split names, fix dates and phone numbers, translate picklist values.
Templates
Next month's file starts from this month's mappings and filters.
Validate and dry run
Every row checked before anything is written.
Docs: Choose your data
Files, workbooks, delimiters, filters and the Source assistant, in detail.
Questions people ask
Do I have to save my Excel file as CSV first?
No. Sloose reads .xlsx workbooks directly, every sheet in them. The older .xls format and .ods cannot be read: open the file and save it as .xlsx, and Sloose says so by name.
Can I import an Excel file with several sheets?
Yes. Tick the sheets you want. Each one becomes its own file in the import, with its own columns, cleaning and mapping, and all of them are imported in one run.
My report has a title above the column names. What do I do?
In an .xlsx, nothing: Sloose finds the header row by itself and shows which row it chose, and you can type another. In a CSV, ask the assistant on Source, which can answer with a recipe that starts "use row 4 as the header".
Is the clean-up remembered for next month?
Yes. The reshape recipe and the row filter are both saved with a template. Next month's file is reshaped the same way as it arrives, before anything else and with no AI credits, with Undo to load it as read instead. If the file no longer fits the recipe, say a title row has moved or a column it names has gone, none of the reshape is done: the file loads as read and says why, and asking the assistant again uses AI credits. An answer that proposes nothing you can use costs none.
Does Sloose change my file?
No. Edits, excluded rows and filters belong to the import. Your original file is untouched.
Bring the messy one
Start on the free plan with the file you actually have. Nothing is written until you run it.