SQLite to CSV Exporter

Export any SQLite table to CSV directly in your browser

Export any table from a SQLite database to a CSV file entirely in your browser. Pick a table, get a properly quoted CSV download with header row and escaped values. No server, no upload — your data stays on your device. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Does this export every row or just a preview?

It exports the complete table. The tool walks the entire b-tree for the chosen table, decoding every row, then streams the result into a downloadable CSV Blob — there is no row cap.

The SQLite to CSV Exporter turns any table inside a SQLite database into a clean, spreadsheet-ready CSV file without a command line or desktop app. It reads the database file directly in the browser, lets you pick a table, and produces a standards-compliant CSV download. This is the fastest way to move data out of a .db file and into Excel, Google Sheets, pandas or a BI tool.

When this saves you time

SQLite is everywhere — it is the default database for iOS and Android apps, many desktop applications, and a large number of backend services that want zero-config persistence. You might reach for this tool when:

  • A mobile app backs up its local database (for example an offline-first app or a notes app) and you want to read the data in a spreadsheet.
  • A developer hands you a .db file and you need to inspect a specific table without installing sqlite3 or DBeaver.
  • You are migrating data from one system to another and CSV is the expected import format.
  • You want to analyse a table in Excel or Google Sheets with filters, pivot tables, or charts.

How it works

SQLite stores each table as a b-tree of pages inside one file. The exporter first reads the database header to find the page size, then reads the sqlite_master table (rooted on page 1) to discover every table, its root page and its CREATE TABLE statement.

When you choose a table, the tool walks that table’s b-tree from its root page: interior pages are followed down to their children, and leaf pages yield the rows. Each row is a record made of varint-encoded serial types plus column bodies, which decode to NULL, integers, floats, text or blobs.

Column headers come from parsing the table’s CREATE TABLE statement, splitting the column list at top-level commas and skipping table-level constraints like PRIMARY KEY and FOREIGN KEY. Every value is then escaped per RFC 4180 and joined with CRLF line endings so the file imports cleanly everywhere.

How CSV escaping works

RFC 4180 is the widely-followed standard for CSV files. The key rules:

Value containsWhat happens
CommaThe whole field is wrapped in double quotes
Double quoteThe field is quoted and the quote is doubled: ""
Newline or carriage returnThe field is quoted, the line break is preserved inside
NULLWritten as an empty field (two consecutive commas)
Integer or floatWritten as a plain number without quotes
BLOBWritten as a short descriptor like [BLOB 1024 bytes]

This output loads correctly in Excel, Google Sheets, LibreOffice Calc, and pandas without needing any import settings adjustment.

Tips and notes

  • The downloaded file is named after the table, for example users.csv.
  • An INTEGER PRIMARY KEY column that SQLite stores internally as NULL is restored to its actual rowid in the export.
  • If a table is empty you still get a valid CSV with just the header row — useful for confirming column names.
  • The exporter lists only user tables (not SQLite internal tables like sqlite_sequence), so the dropdown stays clean.
  • For very large tables the export may take a few seconds; progress is shown while the b-tree is walked.

Everything runs locally in your browser — no upload, no account, no server ever sees your data.