Vai al contenuto
Esportare in CSV

Come esportare i dati dell’app Salute in CSV

L’app Salute non esporta in CSV: crea un file export.zip con i tuoi dati in XML (Riepilogo, la tua immagine, “Esporta tutti i dati sanitari”). Per avere un CSV, converti quell’XML con uno script o usa un’app dell’App Store che legge i tuoi dati sanitari e scrive CSV. Qui sotto trovi entrambe le strade, con uno script che abbiamo testato su un file da 1 milione di record.

A cura del team telo · Rivista il

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.

  1. Apri l’app Salute su iPhone.
  2. Tocca Riepilogo, poi la tua immagine o le tue iniziali in alto a destra.
  3. Scorri il profilo fino in fondo e tocca “Esporta tutti i dati sanitari”.
    Profilo dell’app Salute scorso fino in fondo, con il pulsante blu per esportare tutti i dati sotto la sezione Privacy (interfaccia in inglese)
    Profilo dell’app Salute, interfaccia in inglese. Simulatore di iPhone, iOS 27, 2026-11-14.
  4. Nell’avviso di conferma, tocca Esporta. Con anni di dati, la preparazione del file può richiedere qualche minuto.
    Avviso che chiede se vuoi davvero esportare i tuoi dati sanitari, con i pulsanti per annullare e per esportare (interfaccia in inglese)
    L’avviso di conferma, interfaccia in inglese. Simulatore di iPhone, iOS 27, 2026-11-14.
  5. Il foglio di condivisione mostra il file “export”, un archivio ZIP. Salvalo nell’app File: è il modo più semplice per aprirlo poi sul computer.
    Foglio di condivisione con l’archivio ZIP export in alto e le azioni per copiare, aggiungere tag e salvare in File (interfaccia in inglese)
    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.
  6. 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.

  1. Salva il codice qui sotto come to_csv.py accanto alla cartella apple_health_export.
  2. Nel Terminale, in quella cartella, esegui: python3 to_csv.py apple_health_export/export.xml HKQuantityTypeIdentifierStepCount
  3. 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.
python
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.

Conversione di un export.xml da 220 MB con 1 milione di record
Come si legge l’XMLMemoria usataTempo
In streaming (lo script qui sopra)16 MB2,2 s
Caricando tutto il file (ElementTree.parse)964 MB1,9 s

Le strade a confronto

Modi per ottenere un CSV dai dati di Salute
StradaPrezzoCosa serveLimiteFonte, data
Esportazione dell’app Salute + scriptGratisUn computer con Python 3L’iPhone dà solo XML; la conversione è a carico tuoSupporto Apple
Health Export CSV (app)2,99 US$; Remote 4,99 US$ al mese o 29,99 US$ all’annoiPhoneCSV e GPX direttamente dall’iPhone; Remote sincronizza in backgroundApp 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 vitaiPhoneIl piano Free non esporta; Basic esporta a mano (CSV e JSON); esportazione automatica solo con PremiumApp Store
teloPro 49 US$ all’anno; con Free l’assistente vede solo gli ultimi 7 giorniiPhone con l’app teloCSV 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 JSONApp 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).

bash
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"
FAQ

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.

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.