Skip to content

Use TablePro every day? A license adds the paid features and funds the next release. Get a licenseGet a license, fund TablePro

Import, export and data files

For moving data between files and databases: loading a spreadsheet into a table, handing a query result to someone as Excel, cleaning up a CSV before you use it, or taking a dump before a risky change. Everything here is in the Mac app; the last section covers the smaller part on iPhone and iPad.
MaciPhone & iPad

Everything on this page is free.

Import files into a table

⌘⇧I imports CSV, TSV, JSON, JSONL, XLSX and SQL files. A SQL file runs as statements, including .sql.gz dumps and SQL Server scripts split with GO. The other formats load into an existing table, or into a new one named after the file with columns taken from it; an Excel workbook imports its first sheet.

Each field maps to a column, and the import runs in one transaction unless you turn that off. When a row fails, you choose whether to stop and roll back, stop and keep what was imported, or skip the row and carry on, then save a report of the skipped rows as CSV.

The import sheet for a CSV file going into the orders table, with each file column mapped to a table column and the on-error option.

Saved mappings and encodings

TablePro remembers the mapping you chose for each table, for CSV, JSON and Excel imports, and Match by Name or Match by Position maps every field in one click; matching by position works for CSV and Excel, where the order of fields comes from the file. CSV and SQL imports read UTF-16 and Japanese, Chinese and Korean encodings such as Shift JIS, GB 18030, Big5 and EUC-KR.

Export tables and results

⌘⇧E exports the tables and views you tick to CSV, JSON, SQL, XLSX, Markdown, HTML and XML. Each one streams from the database as it is written, so the row cap of the data grid does not apply, and on SQL engines each table can take its own WHERE clause, row limit and choice of columns. SQL exports can carry structure, compress with gzip and split into parts, and Excel puts each table on its own sheet. MongoDB collections also export as a mongosh script, and SQL export is not offered for MongoDB or Redis.

Export Results writes what a query returned; a result the row cap cut short runs again and streams in full. Parquet export comes from a free plugin you install in Settings > Plugins, and writes one file per table.

The Export dialog with the orders table ticked among the schema's tables and views, and XLSX chosen as the format.

Data Files: work on a file without a database

Open, search and clean up

Open a CSV, TSV or other delimited text file, or JSON and JSON Lines, from Finder or with ⌘O, and the Data Files window shows it as a table you can edit. Filter it with the data grid’s filter bar, search every column, find and replace with regular expressions, and tidy it with Fill Down, Trim Whitespace, Change Case and Remove Duplicate Rows. Excel workbooks open with a tab per sheet and compressed files such as .csv.gz open too, both read-only.

The window works on a private copy, and ⌘S writes the file back in its own format, leaving untouched rows as they were.

The Data Files window with orders.csv open and searched for Hanoi, the status bar reading 2,498 of 20,000 rows.

Column statistics, then export or import

Column statistics give a column’s empty and distinct counts, its range and its most common values; click a value to filter the file to it. When the file is ready, export it to another format, or send it to a table on an open connection with Import into Table.

Column statistics for the status column of orders.csv in the Data Files window.

Back up with your engine’s own tools

Backup Dump and Restore Dump work through pg_dump, mysqldump, mongodump, sqlite3, sqlpackage and DuckDB, over the connection’s SSH tunnel and with its SSL settings, so a server behind a bastion needs no second tunnel. Each of these except DuckDB is a command-line tool you install; DuckDB writes the dump itself, as a database file or a folder of Parquet files.

On Oracle, Google BigQuery and Snowflake, Server-Side Export has the server write the export instead: an Oracle Data Pump job, a Snowflake stage or a Cloud Storage bucket. Nothing lands on your Mac.

Backup Dump, with its tool
PostgreSQL (pg_dump), MySQL (mysqldump), SQL Server (sqlpackage), SQLite (sqlite3), MongoDB (mongodump), MariaDB (mysqldump), Amazon Redshift (pg_dump), DuckDB (DuckDB), libSQL (sqlite3)
The Back Up sheet for a connection through an SSH bastion, with only the shop database selected.

Files that are databases

SQLite and DuckDB files open from Finder as connections. DuckDB also reads Parquet, CSV and JSON files as read-only views, so a .parquet file opens as a DuckDB connection rather than in Data Files. A SQLite database on an SSH server opens either live, through a small agent that needs Python 3.6 or later on the server, or as a read-only copy.

.sql files open as query tabs and save back to disk, and a Beancount ledger opens read-only as a set of tables.

From one database to another

Moving tables or rows between two connections needs no file in between. Copy To and Transfer To do it directly, across engines too, and show what they will write before anything runs.

On iPhone and iPad

The iPhone and iPad app copies or shares rows and query results as JSON, CSV or SQL INSERT statements, from the rows it has loaded. A copy stays on that device’s clipboard and is not shared with your other devices.

Rows go in through the Shortcuts actions Add Row to Table and Add Rows to Table, which take JSON or CSV text or a file and follow the connection’s Safe Mode. There is no import sheet, file export, Data Files window or backup on iPhone and iPad.

Where it works

Each capability on this page, the plan it needs on the Mac, and what exists of it on iPhone and iPad
Capability
Import files into a tableMac: FreeiPhone and iPad: Shortcuts actions, from JSON or CSV
Saved mappings, Match by Name and Match by PositionMac: FreeiPhone and iPad: Not available
Export tables and results to filesMac: FreeiPhone and iPad: Copy or share as JSON, CSV or SQL INSERT
Parquet export pluginMac: FreeiPhone and iPad: Not available
Data Files windowMac: FreeiPhone and iPad: Not available
Backup Dump and Restore DumpMac: FreeiPhone and iPad: Not available
Server-Side ExportMac: FreeiPhone and iPad: Not available
SQLite and DuckDB filesMac: FreeiPhone and iPad: Files on the device, or DuckDB in memory
SQLite files over SSHMac: FreeiPhone and iPad: Not available

Limits worth knowing

  • A SQL export includes DROP TABLE IF EXISTS before each table unless you untick it, so check the options before running the file against a database whose tables you want to keep.
  • Backup Dump uses command-line tools you install yourself, and only on the engines listed. The tools get the password through the environment or a temporary file, except sqlpackage, which takes the SQL Server password on its command line, where other processes on the Mac can read it; TablePro asks before it starts.
  • Restore Dump replaces the tables in a MySQL or MariaDB dump. On the other engines it does not replace an object that already exists, and a SQL Server .bacpac needs an empty database.
  • Opening a database file over SSH works for SQLite only.
  • DuckDB extensions that are not built in, such as httpfs for S3, Iceberg and Delta, download from DuckDB’s own servers the first time a query needs them.
  • In the current App Store version, the Shortcuts actions read CSV and JSON only as UTF-8, and CSV only with LF line endings.

Get TablePro

TablePro is open source and free to use. Paid plans add optional features to the Mac app.
Download for Mac

macOS 13 Ventura or laterApple silicon or Intel

Download on the App Store

iPhone and iPadiOS and iPadOS 18 or later

See pricing