Esportare dall’app Salute (ufficiale, gratis)
È l’unica esportazione documentata da Apple. Raccoglie tutto ciò che l’app Salute conserva, senza scegliere metrica né periodo.
- Apri l’app Salute su iPhone.
- Tocca Riepilogo, poi la tua immagine o le tue iniziali in alto a destra.
- Scorri il profilo fino in fondo e tocca “Esporta tutti i dati sanitari”.

Profilo dell’app Salute, interfaccia in inglese. Simulatore di iPhone, iOS 27, 2026-11-14. - Nell’avviso di conferma, tocca Esporta. Con anni di dati, la preparazione del file può richiedere qualche minuto.

L’avviso di conferma, interfaccia in inglese. Simulatore di iPhone, iOS 27, 2026-11-14. - Il foglio di condivisione mostra il file “export”, un archivio ZIP. Salvalo nell’app File: è il modo più semplice per aprirlo poi sul computer.

Il foglio di condivisione, interfaccia in inglese. I 2 KB vengono da un simulatore vuoto; un’esportazione reale è molto più grande. iOS 27, 2026-11-14. - Sul computer, decomprimi export.zip. I record si trovano in apple_health_export/export.xml.
Convertire export.xml in CSV con Python
export.xml salva ogni misurazione come una riga Record, con tipo, unità, date e valore. Lo script qui sotto legge il file in streaming, sceglie un tipo di dato e scrive un CSV con inizio, fine, valore, unità e origine. Serve solo Python 3, senza installare nulla.
- Salva il codice qui sotto come to_csv.py accanto alla cartella apple_health_export.
- Nel Terminale, in quella cartella, esegui: python3 to_csv.py apple_health_export/export.xml HKQuantityTypeIdentifierStepCount
- Il CSV compare nella stessa cartella, con il nome del tipo di dato, e l’ultima riga stampata dice quanti record sono stati scritti. Sostituisci HKQuantityTypeIdentifierStepCount con il tipo che ti serve, per esempio HKQuantityTypeIdentifierHeartRate per la frequenza cardiaca.
import csv, sys
import xml.etree.ElementTree as ET
src, want = sys.argv[1], sys.argv[2] # export.xml HKQuantityTypeIdentifierStepCount
rows = 0
with open(want + ".csv", "w", newline="", encoding="utf-8-sig") as out:
w = csv.writer(out)
w.writerow(["startDate", "endDate", "value", "unit", "sourceName"])
events = ET.iterparse(src, events=("start", "end"))
_, root = next(events)
for event, el in events:
if event == "end" and el.tag == "Record":
if el.get("type") == want:
w.writerow([el.get("startDate"), el.get("endDate"), el.get("value"), el.get("unit"), el.get("sourceName")])
rows += 1
root.clear()
print(rows, "rows in", want + ".csv")
Cosa ha mostrato il nostro test
Abbiamo creato un export.xml di esempio nel formato di Apple con 1 milione di record di passi e frequenza cardiaca (220 MB, valori illustrativi, non sono dati di nessuno). Su un Mac con Apple Silicon e Python 3.15, il 2026-11-13:
Il tempo è simile; la memoria no. Una stima, non testata: nella stessa proporzione, un’esportazione reale da 1 GB richiederebbe quasi 4 GB di memoria per essere caricata tutta, abbastanza da bloccare un normale portatile. Lo script in streaming è rimasto intorno ai 16 MB nel test.
| Come si legge l’XML | Memoria usata | Tempo |
|---|---|---|
| In streaming (lo script qui sopra) | 16 MB | 2,2 s |
| Caricando tutto il file (ElementTree.parse) | 964 MB | 1,9 s |
Le strade a confronto
| Strada | Prezzo | Cosa serve | Limite | Fonte, data |
|---|---|---|---|---|
| Esportazione dell’app Salute + script | Gratis | Un computer con Python 3 | L’iPhone dà solo XML; la conversione è a carico tuo | Supporto Apple |
| Health Export CSV (app) | 2,99 US$; Remote 4,99 US$ al mese o 29,99 US$ all’anno | iPhone | CSV e GPX direttamente dall’iPhone; Remote sincronizza in background | App Store |
| Health Auto Export (app) | Basic 2,99 US$ (acquisto unico); Premium 1,99 US$ al mese, 6,99 US$ all’anno o 24,99 US$ a vita | iPhone | Il piano Free non esporta; Basic esporta a mano (CSV e JSON); esportazione automatica solo con Premium | App Store |
| telo | Pro 49 US$ all’anno; con Free l’assistente vede solo gli ultimi 7 giorni | iPhone con l’app telo | CSV di valori giornalieri, sonno e allenamenti dal tuo account sul web, una volta al giorno, anche con Free; totali per giorno, non ogni misurazione. Fornisce anche lo storico a Claude, ChatGPT e altri assistenti (completo solo con Pro) e, con Pro, tramite un’API JSON | App Store |
Quando non ti serve un CSV
Se vuoi chiedere qualcosa sui tuoi dati (“la mia frequenza cardiaca a riposo è scesa quest’anno?”), esportare e convertire ogni volta è una fatica. telo legge i dati dell’app Salute tramite l’app per iPhone e permette a Claude, ChatGPT e altri assistenti di consultare lo storico direttamente, senza file. Se programmi, puoi leggere gli stessi dati con l’API REST personale, in JSON, fino a 500 righe per chiamata. Se vuoi solo dei fogli di calcolo, telo ti restituisce anche la sua copia in CSV: una riga per giorno e metrica, per notte e per allenamento, nel tuo fuso (Account > I tuoi dati, sul web).
curl 'https://telo.health/api/v1/query_daily?metrics=steps&from=2026-11-01&to=2026-11-08&granularity=day' \
-H "Authorization: Bearer $TELO_API_KEY"Domande pratiche
L’app Salute esporta direttamente in CSV?
No. L’esportazione dell’app Salute crea un export.zip con i dati in XML. Per il CSV, converti export.xml con uno script o usa un’app dell’App Store che scrive CSV.
Posso esportare una sola metrica o un solo periodo?
Non con l’esportazione ufficiale, che prende tutto insieme. Lo script di questa guida sceglie un tipo di dato; le app della tabella permettono di scegliere metrica e periodo sull’iPhone.
Perché export.xml è così grande?
Ogni misurazione è una riga, e l’orologio misura la frequenza cardiaca molte volte al giorno. Qualche anno di utilizzo arriva facilmente a centinaia di megabyte.
Dove finisce il file esportato?
Dove l’hai mandato dal foglio di condivisione. Se l’hai salvato nell’app File, export.zip è nella cartella che hai scelto, sull’iPhone o in iCloud Drive. Se l’hai inviato con AirDrop a un Mac, finisce nella cartella Download.
Posso esportare solo gli allenamenti o solo il sonno?
Non con l’esportazione ufficiale. Dopo l’esportazione, cambia il tipo nello script: HKCategoryTypeIdentifierSleepAnalysis per il sonno. Gli allenamenti sono righe Workout, non Record, e richiedono un altro script; le app della tabella esportano allenamenti e sonno separatamente sull’iPhone.
Come apro export.xml in Excel?
Non aprire l’XML direttamente. Convertilo in CSV, un file per tipo di dato, e controlla che il CSV abbia meno di 1.048.576 righe, il massimo di un foglio di Excel.
telo esporta in CSV?
Sì, da novembre 2026. Nel tuo account telo sul web, I tuoi dati > Scarica tutto (CSV) fornisce uno zip con valori giornalieri, sonno, allenamenti e quale IA ha letto cosa, con gli orari nel tuo fuso. Contiene ciò che l’iPhone ha inviato a telo, sommato per giorno, non ogni misurazione dell’app Salute; per i dati grezzi usa l’esportazione dell’app Salute. Una volta al giorno, anche con Free.
Fonti e disponibilità
Piani, regioni e schermate possono cambiare. Controlla le fonti ufficiali prima di configurare.
- Supporto Apple: Condividere i dati in Salute su iPhone, controllato il 2026-11-14
- Microsoft: Specifiche e limiti di Excel, controllato il 2026-11-14
- Microsoft: cosa fare se un set di dati è troppo grande per la griglia di Excel, controllato il 2026-11-14
- Python: xml.etree.ElementTree.iterparse, controllato il 2026-11-14
Come è stata preparata questa guida
Il 2026-11-14 abbiamo controllato i passaggi dell’esportazione sulla pagina di supporto di Apple, i prezzi e i piani sulle pagine dell’App Store e il limite di righe nella documentazione di Microsoft. Gli screenshot sono dell’app Salute nel simulatore di iPhone (iOS 27, interfaccia in inglese, senza dati e senza account iCloud) del 2026-11-14, per questo il profilo mostra un avviso sul backup. Lo script è stato misurato in una nostra sessione il 2026-11-13 su un export.xml di esempio nel formato di Apple con 1 milione di record illustrativi, su un Mac con Apple Silicon e Python 3.15; il dato di 1 GB è una stima nella stessa proporzione. Non abbiamo usato dati sanitari di nessuno.