Mac · iPhone · iPad — osascript automation — no upload
Export Numbers to CSV Guide, Terminal command and Python.
Export Apple Numbers spreadsheets to CSV. Step-by-step guide for Mac, iPhone and iPad. Enter your file path and get a personalised osascript Terminal command for automated recurring exports. Works on any macOS version.
Mac, iPhone & iPad
osascript automation
All sheets at once
Python script included
Always free
osascript command — personalised for your paths macOS only
Enter your file paths — the Terminal command updates live
Terminal — paste and run
Numbers creates one CSV file per sheet in the output folder. The folder must exist before running the command. Run mkdir -p /your/output/folder first if needed.
Export Numbers to CSV — three methods
Choose the method that fits your device and workflow.
Mac menu
Open your spreadsheet in Numbers
Click File in the menu bar
Click Export To → CSV…
Select Unicode (UTF-8)
Click Next…
Choose a folder, click Export
iPhone & iPad
Open the spreadsheet in Numbers
Tap the … (More) button top-right
Tap Export
Tap CSV
Choose Save to Files, AirDrop or share
One CSV per sheet exported
iCloud web
Open icloud.com/numbers
Open your spreadsheet
Click the wrench icon in the toolbar
Click Download a Copy
Choose CSV
File downloads to your browser
Automate with osascript and Python
For recurring exports — run once manually or on a schedule.
Terminal — single file export
osascript -e '
tell application "Numbers"
open POSIX file "/Users/YourName/data.numbers"
delay 1
export front document to POSIX file "/Users/YourName/output/" as CSV
close front document saving no
end tell
'
Exports all sheets to the output folder. Each sheet becomes SheetName.csv. The output folder must already exist.
Python — batch export all .numbers files in a folder
import subprocess, os, glob
numbers_dir = '/Users/YourName/Documents/spreadsheets/'
output_dir = '/Users/YourName/Documents/csv-output/'
os.makedirs(output_dir, exist_ok=True)
for path in glob.glob(numbers_dir + '*.numbers'):
name = os.path.splitext(os.path.basename(path))[0]
outdir = os.path.join(output_dir, name) + '/'
os.makedirs(outdir, exist_ok=True)
script = f'''
tell application "Numbers"
open POSIX file "{path}"
delay 1
export front document to POSIX file "{outdir}" as CSV
close front document saving no
end tell'''
subprocess.run(['osascript', '-e', script], check=True)
print(f'Exported: {name}')
print('Done.')
Requires Numbers installed on macOS. Each .numbers file gets its own subfolder of CSVs — one per sheet. No additional Python packages needed.
What to do with the exported CSV
Numbers exports clean UTF-8 CSV — compatible with every major tool.
Open in Excel
Numbers CSVs use UTF-8 encoding. In Excel: Data → From Text/CSV → select UTF-8 to avoid encoding issues. Or use CSVShift CSV to Excel to convert first.
Load in pandas
pd.read_csv('sheet.csv', encoding='utf-8') — Numbers exports clean UTF-8 that pandas reads directly. No BOM handling needed.
Open in Google Sheets
Upload the CSV to Google Drive → right-click → Open with Google Sheets. Numbers → CSV → Sheets is the standard workflow for sharing data with non-Apple users.
Import into a database
Use CSVShift to convert the Numbers CSV export to SQL INSERT statements, SQLite, PostgreSQL or MongoDB for database import. Numbers → CSV → CSVShift → your database.
numbers to csvapple numbers export csvhow to export numbers to csvnumbers to csv macconvert numbers to csvnumbers app to csviphone numbers to csvnumbers to csv pythonexport all sheets numbers csvnumbers to csv terminalosascript numbers export csvbatch export numbers to csv
Your exact Terminal command, generated live. No guessing.
The osascript personaliser above generates the exact command for your file path and output folder — no editing placeholder strings. The Python batch script handles entire folders of .numbers files, creating a subfolder of CSVs per file. Both work on any macOS version with Numbers installed.
Numbers exports clean UTF-8 CSVs — one per sheet, named after the sheet. The File → Export To → CSV menu option on Mac creates a folder with all sheets in a single step. No third-party software required.
Live path personaliser
Enter your actual paths — the Terminal command updates in real time with zero placeholder editing.
All sheets exported
Numbers creates one CSV per sheet automatically — no need to export each sheet individually.
Python batch script
Export entire folders of .numbers files to CSV in one run — no additional Python packages needed.
Three platform guides
Mac menu, iPhone/iPad tap workflow and iCloud web — exact steps for every Apple platform.
Frequently asked questions
How do I export Apple Numbers to CSV?
In Numbers on Mac: File → Export To → CSV → choose UTF-8 encoding → Next → Export. Numbers creates one CSV per sheet in a folder. On iPhone/iPad: tap … → Export → CSV. On iCloud web: wrench icon → Download a Copy → CSV.
How do I export all sheets from Numbers to CSV at once?
Numbers' File → Export To → CSV automatically creates one CSV per sheet in a folder. You don't need to export each sheet individually — all sheets are exported in one step and named after their sheet tabs.
Can I automate Numbers to CSV export on a schedule?
Yes. Use the osascript command from the personaliser above, then add it to a launchd plist or cron job to run on a schedule. For recurring exports (daily reports, weekly data), the Python batch script handles multiple files in one run.
Why does my Numbers CSV have encoding issues in Excel?
Numbers exports UTF-8 without BOM. Excel on Windows expects UTF-8 BOM for auto-detection. Fix: in Excel use Data → From Text/CSV → select UTF-8 encoding manually. Or use CSVShift CSV to Excel to convert the file first — it adds the correct BOM automatically.