SQLite to Excel Converter
Hand a database file to somebody who works in spreadsheets. Every table is offered, the columns arrive typed, and the .db never leaves your machine.
To convert SQLite to Excel, drop your .db, .sqlite or .sqlite3 file above. The database is opened in your browser, every table with rows is listed, and the one you choose becomes an .xlsx with cells typed by column, a frozen header row and fitted widths. Nothing is uploaded at any point.
Want to join or aggregate first? Open the app
The extract nobody can open
The situation repeats itself: an application exports its data as a SQLite file, or a bug report has one attached, or somebody in engineering pulled a snapshot. The person who needs to look at it works in Excel and has no database client.
The usual workaround is for an engineer to run a query, export a CSV and email it, which costs somebody twenty minutes and produces a file where the leading zeros are already gone and the dates have become text.
Converting straight to a workbook removes both the round trip and the lossy middle step.
Several tables, offered rather than guessed at
A database file holds many tables the way a workbook holds many sheets, so it reuses the same control. The first table with rows converts on arrival and every table that has rows is listed underneath with its name, so switching is one click.
Empty tables are left out of the list rather than offered as choices that produce nothing. Schema-migration bookkeeping tables are usually the first thing in a database by creation order, so an alphabetical or creation-order pick would hand you those every time.
Views are not included. A view is a query rather than stored data, and running it would mean interpreting SQL this reader does not execute. If you need a view's output, materialise it into a table first with a CREATE TABLE AS in your own client.
Typing a database that does not type itself
SQLite's declared column types are affinities rather than constraints. A column declared INTEGER can hold text, and in an application's local store it very often does, because the application wrote whatever its ORM handed over.
So the type is decided from the values, once per column, before any cell is written. A column becomes numeric only when every value in it round trips exactly, boolean only when every value is a real true or false, and text otherwise.
That produces a workbook where each column is one type throughout, which is the thing Excel needs to sort, filter and look up correctly. Typing each cell on its own would give you a column with the green "number stored as text" triangle on half its rows.
Dates, and why they usually stay text
SQLite has no date type. An application stores dates as ISO text, as a Unix timestamp, or as a Julian day number, and nothing in the file records which convention it chose.
Where a column holds exact YYYY-MM-DD text throughout, it becomes a real date cell formatted yyyy-mm-dd, with the serial computed by UTC arithmetic so no timezone can shift it. That covers the common case, because ISO text is what most modern libraries write.
Where it holds timestamps as integers, you get numbers, which is honest: turning 1767225600 into a date would require knowing it is seconds rather than milliseconds and that the epoch is Unix rather than Julian, and getting either wrong silently produces a date decades out.
Blobs, and the tables you probably want
A BLOB column holds arbitrary bytes: an image, a serialised object, a compressed payload. Those have no spreadsheet representation, and the cell carries a short placeholder rather than several megabytes of mojibake that would make the workbook unopenable.
It is also worth knowing which tables to ignore. Application databases are full of bookkeeping: migration history, cache tables, full-text search shadow tables with names ending in _content or _segdir. The picker lists everything with rows, and the table you want is nearly always the one with a business-sounding name.
Nothing is uploaded, and that is the point
The hosted converters for these formats all want the file. That is a fine trade for a photograph and a poor one for a database extract, which is what these files almost always are: customer tables, transaction detail, event streams with identifiers in them.
Everything here runs inside the page. The file is read by JavaScript in your tab, the output is built there, and the download comes out of memory. Nothing is sent, stored or logged, and once the page has loaded the tool works with the network off.
The practical ceiling is your tab's memory rather than an upload quota. Past a hundred megabytes or so the full editor streams and is the better route.
Frequently Asked Questions
Do I need a database client?
No. The file is opened in your browser tab. That is the point: reading a .db on a machine with no client, or letting somebody who does not use one look at the data without an engineer in the loop.
Which table is converted?
The first with rows, immediately, with every table that has rows listed underneath so you can switch with one click. Empty tables are left out, which matters because migration bookkeeping tables are usually first by creation order.
Why is a column declared INTEGER coming out as text?
Because at least one value in it is not an integer. SQLite's declared types are affinities rather than constraints, so a column genuinely can hold mixed storage classes, and one type per column is what Excel needs to sort and look up correctly.
Will dates become date cells?
If the column holds exact YYYY-MM-DD text throughout, yes, with the serial computed by UTC arithmetic. If it holds integer timestamps you get numbers, because deciding they are Unix seconds rather than milliseconds or Julian days would be a guess that silently produces a date decades out.
What happens to BLOB columns?
The cell carries a short placeholder rather than the bytes. A few megabytes of binary rendered as text would make the workbook slow or unopenable, and it would not tell you anything about the contents.
Is the database file uploaded?
No. It is opened and read inside your browser tab, and the workbook is built there too. A .db file is often an application's whole local state, which makes this the deciding factor for most people who use the page.
Open the .db in a spreadsheet
Every table offered, typed cells, a frozen header, nothing uploaded.
Back to the converter