What happens to your workbook
"It's just a spreadsheet."

You upload a workbook. Half a second later an assistant can ask it questions in SQL. Between those two moments a few things happen that are worth knowing, because they explain both what works and the one or two things that will not.
One sheet, one table
Every non-empty sheet becomes a table named after the sheet, lower-cased and cleaned up: 2024 Orders becomes orders_2024-style names that SQL can spell without quotes. A CSV, Parquet or NDJSON file becomes one table named after the file. Joining across sheets is a JOIN like any other, which is often the moment people realise the thing was a database all along.
Headers
The first row is used as column names when it looks like a header: text cells over a sheet whose following rows are mostly numbers, dates or booleans. When the first row is data, columns are called col_1, col_2 and so on, and nothing is lost. You can force either reading if the heuristic guesses wrong. Duplicate header names get a suffix rather than silently overwriting a column.
Types
Spreadsheet cells do not have types, columns do. Each column is scanned and given the narrowest type that fits everything in it: whole numbers, decimals, booleans, dates, or text if the column is a mix. Dates are the classic trap: in a workbook they are numbers with a display format, and a file saved by an old Mac counts days from 1904 instead of 1900. tableski reads the format and the workbook's date system, so a date column comes out as a date, and WHERE day >= '2024-03-01' means March.
The ugly ones
We keep a small corpus of real-world horrors and every change must still load them: merged cells across the header, ragged rows that stop early, padding rows and columns of nothing, sheets whose names are emoji, the 1904 date system, and a file called .xlsx that is not a workbook at all. The last one is refused with a clear message; the others load, because refusing them would refuse most of the spreadsheets in the world.
There is a row cap per sheet, and it is an error rather than a silent cut: if a sheet has more rows than your plan allows, you are told at upload, not left wondering why totals do not match.
What does not happen
Formulas are read as their last computed value, which is what the file stores; tableski does not recalculate. Charts, formatting, macros and comments are ignored. Nothing is written back into your workbook, ever: the export tool writes new CSV or XLSX files into a folder of its own. The workbook you uploaded is the workbook you get back.
If you want to see what your own file turns into, the upload page shows every table it produced with its row and column counts, before any question is asked. Try it with a real one.