Vai al contenuto
OneKitly

XLS, XLSX, XLSM e XLSB: qual è quale, e quale ti serve

Pubblicato il 19/08/2026 · 12 min di lettura · Strumenti per file

Daniel Okonkwo

Daniel OkonkwoSviluppatore front-end e redattore Tech presso OneKitly

Performance web · Formati di file

Verificato su 4 fonti

Vedi il profilo
In breve

Usa XLSX salvo che tu abbia una ragione precisa per non farlo. Usa XLSM solo se la cartella deve eseguire macro. Usa XLSB solo se il file è molto grande e resta dentro una sola organizzazione con Excel. Leggi l'XLS, non scriverlo mai. Ecco il fatto che rende coerente tutto il resto: XLSX, XLSM e XLSB sono la stessa cosa — un archivio ZIP di parti. Rinomina uno qualsiasi di essi in .zip e il gestore file lo apre. La cartella di prova da 201 righe usata per questo articolo, scritta in .xlsx, è uno ZIP con dieci membri: xl/workbook.xml, xl/worksheets/sheet1.xml, xl/styles.xml, [Content_Types].xml e altri sei. Salvato come .xlsb, lo stesso pacchetto contiene invece xl/workbook.bin e xl/worksheets/sheet1.bin: contenitore identico, parti binarie invece che XML. Un XLSM è un XLSX byte per byte, più il permesso di portare xl/vbaProject.bin. L'XLS è l'intruso: comincia con D0 CF 11 E0 A1 B1 1A E1, un file composto OLE2 di prima del 2007, e rinominarlo in .zip non dà nulla. Le differenze di dimensione sono reali ma minori della leggenda. Lo stesso foglio da 201 righe occupa 17 408 byte in .xls, 44 343 in .xlsx, 44 321 in .xlsm, 28 505 in .xlsb. La scala ribalta il quadro: con 25 000 righe per 5 colonne, l'.xlsx pesa 5 031 220 byte e si legge in 562 ms, l'.xlsb 3 780 567 byte e 234 ms — un quarto più leggero, letto al doppio della velocità. Un avvertimento prima di convertire: questo strumento scrive .xlsx, e l'.xlsx non può portare macro. Convertire un XLSM le cancella, in silenzio.

Quattro estensioni, tre delle quali sono la stessa scatola con coperchi diversi. Rinomina un XLSX in .zip e si apre: questo solo fatto spiega tutta la famiglia, e spiega perché XLS, che così non si apre, resti quello che dà problemi.

Il fatto che spiega tutta la famiglia: rinominalo in .zip

Prendi una copia di un .xlsx qualsiasi, cambia l'estensione in .zip e fai doppio clic. Si apre. Dentro c'è un albero di cartelle: [Content_Types].xml dichiara che cos'è ogni parte, _rels/.rels dice come le parti si puntano a vicenda, xl/workbook.xml elenca i fogli, xl/worksheets/sheet1.xml contiene le celle, xl/styles.xml la formattazione. Il file di prova di questo articolo aveva esattamente dieci membri di quel tipo. È tutto qui il progetto: una cartella è un pacchetto compresso di piccoli documenti XML, normato come ECMA-376 e poi come ISO/IEC 29500.

Una volta visto questo, il resto della famiglia smette di essere un mistero. XLSM è lo stesso ZIP con una parte in più ammessa all'interno — xl/vbaProject.bin, il progetto di macro compilato — e un tipo di contenuto che avvisa Excel di aspettarsela. XLSB è di nuovo lo stesso ZIP, con ogni parte XML sostituita da un flusso di record binari: nel file di prova, xl/workbook.xml è diventato xl/workbook.bin, xl/worksheets/sheet1.xml è diventato sheet1.bin, xl/styles.xml è diventato styles.bin. Stesso contenitore, stessa disposizione, codifica diversa del contenuto.

L'XLS rifiuta il trucco, e proprio quel rifiuto è il punto. I suoi primi otto byte sono D0 CF 11 E0 A1 B1 1A E1 — la firma di un file composto OLE2, un piccolo filesystem dentro un file che Microsoft usava per i documenti Office prima del 2007. Niente ZIP, niente XML, niente in cui uno strumento moderno possa camminare senza un parser dedicato. Tutto ciò che è scomodo nell'XLS discende da lì: è un oggetto di altra natura che porta il nome di un foglio di calcolo.

Perché un'organizzazione che riceve ancora XLS ha un problema vero

Il problema non è la nostalgia, è la superficie d'attacco. Leggere un XLS significa far girare un parser binario scritto a mano su byte non affidabili: posizionarsi in un flusso, leggere un tipo di record, leggere una lunghezza, fidarsi di quella lunghezza. Quella forma di codice ha prodotto una lunga serie di avvisi di corruzione di memoria in Office nell'arco di due decenni, ed è per questo che Microsoft fornisce impostazioni di blocco file con cui un amministratore può rifiutare in blocco i vecchi formati binari, e per questo che le macro dei file arrivati da internet sono bloccate per impostazione predefinita anziché solo segnalate.

Il secondo problema è più silenzioso e costa di più: l'XLS si ferma a 65 536 righe e 256 colonne. Un'esportazione moderna che superi l'una o l'altra viene troncata anziché rifiutata, e un rapporto troncato è identico a uno completo. Se un processo, da qualche parte nella tua organizzazione, produce ancora .xls, è quello da controllare per primo, prima ancora della questione di sicurezza.

La soluzione non è vietare l'estensione, il che spinge solo il file in un allegato che nessuno registra. La soluzione è convertirlo all'arrivo e tenere l'originale da qualche parte in sola lettura. È a questo che serve il convertitore di questa pagina: legge XLS, XLSX, XLSM, XLSB, ODS e Apple Numbers, e scrive XLSX. Un'unica uscita, sempre, nel tuo browser, senza caricare nulla.

XLSM, e la cosa che questo convertitore non ti dirà

L'XLSM esiste per una sola ragione: l'XLSX non può contenere macro, quindi una cartella che esegue codice ha bisogno di un altro tipo di contenuto e di un'altra estensione. Quella separazione è voluta ed è un buon progetto: dal nome del file capisci se un foglio può eseguire qualcosa, prima di aprirlo.

Il che ci porta a ciò che l'esecuzione del convertitore ha davvero mostrato. Per la prova è stata costruita una cartella che porta veramente xl/vbaProject.bin, dichiarato in [Content_Types].xml esattamente come lo dichiara Excel. Lo strumento l'ha letta senza battere ciglio. Il progetto di macro non è sopravvissuto in nessuna direzione: al lettore non viene mai chiesto, quindi è scartato prima ancora che la conversione cominci, e l'.xlsx che esce non contiene alcuna parte VBA — i dieci membri dell'uscita sono stati verificati uno per uno. Dunque: convertire qui un XLSM dà un foglio funzionante col codice rimosso, e nessun messaggio lo dice.

Spesso è esattamente ciò che vuoi. Togliere le macro a una cartella arrivata per posta è un gesto d'igiene ragionevole, e il modo più sicuro di farlo è convertire in XLSX e tenere il risultato. È un disastro se le macro erano il punto — un modello mensile che qualcuno in amministrazione ha costruito nel 2011 e che nessuno ha più letto. Sappi in quale dei due casi ti trovi prima di premere, e conserva l'originale comunque.

Quando l'XLSB vale la sua incompatibilità

Su un foglio piccolo, l'XLSB non porta quasi nulla. Il file di prova da 201 righe occupava 44 343 byte in .xlsx e 28 505 in .xlsb, e nessuno dei due ha impiegato un tempo apprezzabile ad aprirsi. Con 25 000 righe per 5 colonne il divario diventa un argomento: 5 031 220 byte contro 3 780 567, e 562 millisecondi di analisi contro 234. È tutto qui il fascicolo a favore dell'XLSB, ed è reale — un quarto in meno su disco e meno della metà del tempo di lettura, perché al parser si consegnano numeri invece di un documento di testo da spezzettare.

Il prezzo è la portabilità, ed è alto. L'XLSB è un formato di parti binarie di Microsoft: la specifica è pubblicata, ma ogni strumento che lo legge ha dovuto implementarlo per conto proprio, e il supporto fuori da Excel è più lacunoso e più tardivo che per l'XLSX. Le anteprime web, i client di posta, i pacchetti statistici e metà delle librerie di scripting del mondo apriranno un XLSX e inciamperanno su un XLSB. C'è stata un'altra sorpresa misurata: scrivere l'XLSB da 25 000 righe con la stessa libreria ha richiesto 21 secondi contro mezzo secondo per l'XLSX. È una proprietà di quel particolare scrittore più che del formato, ma ricorda che il lato veloce dell'XLSB è quello della lettura.

La regola è dunque stretta. Usa XLSB quando il file si misura in milioni di celle, resta dentro una sola organizzazione, si apre solo in Excel, e i secondi risparmiati a ogni apertura valgono qualcosa per qualcuno. Tutto il resto è XLSX — compreso qualunque cosa manderai a una persona di cui non controlli il software.

Che cosa il convertitore ha tenuto, e che cosa no

Il foglio di prova aveva 200 formule nell'ultima colonna e una colonna di date, e ciascuno dei cinque formati è passato per il percorso di lettura e scrittura dello strumento stesso. Righe: 201 su 201, ogni volta. Date: conservate come date, non come numeri di serie, in tutti e cinque. Formule: 200 su 200 conservate da XLSX, XLSM e ODS. Zero da XLSB e zero da XLS — i valori sono arrivati, i calcoli no.

Quest'ultima riga richiede una nota onesta. I file di prova XLS e XLSB sono stati scritti dalla stessa libreria che li ha riletti, e i suoi scrittori per quei due formati salvano il valore in cache senza la formula. La misura prova quindi che l'andata e ritorno perde informazione; non prova che un XLS scritto davvero da Excel perderebbe le formule in entrata. Il consiglio pratico è lo stesso in entrambi i casi e costa un minuto: apri il file convertito, clicca su una cella che dovrebbe essere un calcolo e guarda la barra della formula prima di cancellare l'originale.

Un'altra cosa che vale la pena sapere del lettore: chiede anche le celle vuote. Una cella la cui formula esiste ma il cui risultato in cache è vuoto — frequente nelle cartelle scritte da un generatore, o salvate senza ricalcolo — verrebbe altrimenti buttata via per intero, formula compresa. È perché quelle celle vengono conservate che un file convertito può mostrarti una formula che non ha mai prodotto un numero.

I quattro formati su criteri identici, misurati sulla stessa cartella di prova da 201 righe
FormatoChe cos'è davvero il fileSi apre rinominato .zipPuò contenere macroDimensione, foglio da 201 righeSceglilo quando
XLSFile composto OLE2, binario anteriore al 2007NoSì, come flusso binario17 408 byteNon scriverlo mai. Leggilo, convertilo, archivia l'originale
XLSXZIP di parti XML (ECMA-376)Sì — 10 membri nel file di provaNo, per progetto44 343 byteSempre, salvo che valga una riga qui sotto
XLSMLo stesso ZIP, con xl/vbaProject.bin ammessoSì — gli stessi 10 membriSì — è l'unica differenza44 321 byteLa cartella deve eseguire codice e ti fidi
XLSBLo stesso ZIP con parti .bin invece di .xmlSì — workbook.bin, sheet1.bin, styles.bin28 505 byteMilioni di celle, solo Excel, una sola organizzazione
ODSZIP di parti ODF, il formato nativo di LibreOfficeSì — content.xml, styles.xml, mimetypeSì, nel suo modello di scripting94 890 byteLa tua organizzazione impone formati aperti
XLS in XLSXConverti una vecchia cartella .xls nel formato .xlsx moderno, nel browser.Prova lo strumento

Domande frequenti

Posso semplicemente rinominare un XLS in XLSX?
No, ed è il modo più comune di perdere un file. L'estensione è un'etichetta; i byte sottostanti sono un file composto OLE2, non uno ZIP. Excel di solito se ne accorge e rifiuta, oppure apre avvisando che l'estensione non corrisponde al contenuto. Qualsiasi programma meno indulgente dà semplicemente errore. Rinominare funziona solo fra XLSX, XLSM e XLSB, che sono davvero lo stesso contenitore — e anche lì stai mentendo al tipo di contenuto, il che crea guai suoi. Meglio convertire.
Convertire il mio XLSM in XLSX lo rovinerà?
Romperà le macro e nient'altro. Celle, formule, formattazione e nomi dei fogli passano; il progetto VBA compilato no, perché l'XLSX non ha dove metterlo. Verificato su una cartella costruita apposta per portare xl/vbaProject.bin — l'uscita non conteneva alcuna parte VBA, e non è comparso alcun avviso. Se le macro sono portanti, tieni l'XLSM e converti solo una copia. Se sono indesiderate, questo è il modo più pulito di toglierle.
L'XLSB è davvero più veloce o è un mito?
Reale, ma solo su grande scala e solo in lettura. Su un foglio da 201 righe sono 28 505 byte contro 44 343 e nessuno dei due impiega un tempo apprezzabile ad aprirsi. Con 25 000 righe per 5 colonne sono 3 780 567 byte contro 5 031 220, e 234 millisecondi di analisi contro 562: un quarto in meno e letto in meno della metà del tempo. Scrivere lo stesso file, con la libreria di questa prova, andava al contrario: 21 secondi per l'XLSB contro mezzo secondo per l'XLSX. Giudica l'XLSB da quante volte il file viene aperto, non da quanto occupa in una cartella.
Come capisco che cos'è davvero un file quando l'estensione mente?
Guarda i primi byte. 50 4B — i caratteri PK — significa uno ZIP, quindi XLSX, XLSM, XLSB, ODS o un archivio qualunque. D0 CF 11 E0 A1 B1 1A E1 significa un file composto OLE2: XLS, DOC, PPT o un vecchio MSI. Testo semplice con virgole o punti e virgola e nessuna firma è un CSV che qualcuno ha rinominato. Su macOS e Linux il comando `file` dice tutto questo in una riga; su Windows qualsiasi visualizzatore esadecimale mostra la prima riga. È anche così che il convertitore di questa pagina decide che cosa gli è stato dato, invece di credere al nome.
Il convertitore carica la mia cartella da qualche parte?
No. Tutta la conversione gira nel tuo browser: la libreria dei fogli di calcolo viene scaricata una volta, il file è letto dal tuo disco in memoria e la nuova cartella viene riscritta come download. Nulla lascia la macchina, che è esattamente quel che serve per il caso di cui questa pagina parla davvero — una vecchia cartella piena di nomi, stipendi o schede clienti che preferiresti non depositare sul server di uno sconosciuto solo per cambiarle l'estensione.

Articoli che potrebbero interessarti

Tutte le guide
SpiegazioneConvertire le formule in valori conserva la risposta in cache, non il calcoloUn file di foglio di calcolo conserva sia la formula sia l'ultima risposta calcolata da Excel. Togliere la formula lascia la risposta memorizzata — e lascia un vuoto ovunque il file non ne portasse alcuna.SpiegazioneIl numero 1 e il testo «1» non sono doppioniLa deduplicazione confronta righe intere in modo esatto, tipo di cella compreso. Cinque righe d'aspetto identico sono uscite come tre: una portava un numero, una una stringa e una una stringa con uno spazio davanti.SpiegazionePerché il tuo CSV rovina accenti e date in ExcelDietro la stessa frase si nascondono tre guasti completamente diversi. Uno è la codifica, uno il separatore, uno Excel che indovina i tipi mentre apre il file — e il rimedio è diverso per ciascuno. Ecco come distinguerli in cinque secondi.ConfrontoZIP o TAR: quale scegliere, e perché contaUna sola differenza strutturale spiega tutto il resto: il TAR non comprime, impila; lo ZIP comprime ogni file per conto suo. Misurato su 60 piccoli file sorgente, fa 1 809 byte contro 14 686.TutorialNumerare un PDF quando le pagine sono ruotate o di formati diversiNumerare un documento ordinato è banale. Ciò che morde è una pagina coricata, un foglio Letter fra pagine A4, un file di stampa con abbondanza e un documento che stampa già il proprio numero. Tutti e quattro sono stati provati: nei primi tre il numero finisce esattamente dove l'hai chiesto, e il quarto non viene rilevato affatto.GuidaChe cosa dice di te un PDF: leggere e cancellare i suoi metadatiUn PDF porta i suoi metadati due volte, in due depositi che possono raccontare storie diverse, e nessuno dei due è la storia intera. Ecco che cosa c'è davvero nel file, che cosa la cancellazione toglie e le due cose che sopravvivono a ogni pulizia.

Strumenti correlati

Questo descrive ciò che questi convertitori fanno oggi, verificato eseguendo il loro stesso codice su file reali, e non ciò che dovrebbero fare. Il comportamento di un formato dipende dalla versione di Excel, LibreOffice o Numbers che ha scritto il file e da quella che lo aprirà, quindi conserva l'originale finché non hai aperto la copia convertita e non l'hai guardata. Tutto ciò che conta — una cartella con macro, un modello pieno di formule, un file su cui qualcun altro farà affidamento — si controlla cella per cella dopo la conversione, non si dà per buono perché una barra di avanzamento è arrivata in fondo.

Fonti

Hai notato un errore in questo articolo?