Quando dovrebbero essere usati i formati xlsm o xlsb?


106

Dal Excel 2007, Microsoft ha diviso il classico .xlsformato in diversi formati (in particolare, .xlsx, .xlsm, .xlsb). Non ho alcun problema a capire l'uso e lo scopo del .xlsxformato, ma mi chiedo ancora se dovremmo usare .xlsmun .xlsbformato o un formato quando creiamo un file contenente alcuni VBA.

Certo, puoi trovare alcuni argomenti sul web, ad esempio:

Quello che ho capito da questo ultimo collegamento è che .xlsmè una sorta di formato XML e quindi, necessario per la scheda della barra multifunzione personalizzata.

Al di là della differenza concettuale tra il formato ( .xlsmsi basa su XML VS .xlsbè un file binario ), c'è qualche differenza pratica quando si utilizza uno qualsiasi di questo file (a parte la personalizzazione della barra multifunzione)?
Hai mai notato una reale differenza nell'usare uno di questi formati?


3
xlsb è solitamente più piccolo di xlsm
Charles Williams

Alcune informazioni utili qui - analystcave.com/…
Chris

1
Per qualche ragione, l'utilizzo di .xlsb su .xlsm ha risolto alcuni problemi che stavamo avendo con una funzione definita dall'utente che creava oggetti fantasma nel modello a oggetti: superuser.com/questions/1005482/…
SuMau

Risposte:


62

Sono tutti simili in quanto sono essenzialmente file zip contenenti i componenti del file effettivo. Puoi vedere i contenuti semplicemente sostituendo l'estensione con .zip e aprendoli. La differenza con xlsb sembra essere che i componenti non sono basati su XML ma sono in un formato binario: presumibilmente questo è utile quando si lavora con file di grandi dimensioni.

https://blogs.msdn.microsoft.com/dmahugh/2006/08/22/new-binary-file-format-for-spreadsheets/


I file .xls erano in formato binario. I file .xlsb mantengono questo formato binario per le versioni di Office più recenti. C'è sia una differenza di dimensioni che un vantaggio in termini di velocità nell'archiviazione dei dati in formato binario, sebbene i miglioramenti saranno notati solo in file MOLTO grandi.
music2myear

90

.xlsxcarica 4 volte più a lungo .xlsbe salva 2 volte più a lungo e ha 1,5 volte un file più grande. L'ho testato su un foglio di lavoro generato con 10'000 righe * 1'000 colonne = 10'000'000 (10 ^ 7) celle di semplici =…+1formule concatenate :

╭──────────────╥────────┬────────╮
│              ║ .xlsx  │ .xlsb  │
╞══════════════╬════════╪════════╡
│ loading time ║ 165s   │  43s   │
├──────────────╫────────┼────────┤
│ saving time  ║ 115s   │  61s   │
├──────────────╫────────┼────────┤
│ file size    ║  91 MB │  65 MB │
╰──────────────╨────────┴────────╯

(Hardware: Core2Duo 2.3 GHz, 4 GB RAM, 5.400 rpm SATA II HD; Windows 7, con un carico piuttosto pesante da altri processi.)

Oltre a questo, non dovrebbero esserci differenze. Più precisamente,

entrambi i formati supportano esattamente lo stesso set di funzionalità

cita questo post del blog del 29 agosto 2006. Quindi forse le informazioni che .xlsbnon supportano il codice Ribbon sono più recenti della citazione superiore, ma immagino che la tua fonte del forum sia semplicemente sbagliata. Quando si apre il file binario, sembra che imiti in modo condensato la struttura del file OOXML 1-a-1: articolo del blog del 07-08-2006


2
solo un processo, nessun risultato ministat (1) però: - \
Good Person

2
Confermo che uno dei miei file con una barra multifunzione personalizzata funziona perfettamente in xlsb.
David G

5
@PatrickLepelletier .xlsxè simile .xlsm, solo con le macro disabilitate. Entrambi sono basati su XML. Al contrario, .xlsbè binario. Quindi dovresti leggere la domanda come "{.xlsx / .xlsm} contro .xlsb". (Non esiste una versione del binario con disabilitazione macro .xlsb.)
Aaron Thoma

4
Se xlsb è migliore, perché xlsx è l'impostazione predefinita? Ci deve essere qualche svantaggio per xlsb?
PProteus

3
@PProteus, metti semplicemente xlsb è meglio in un'area specifica. L'idea di introdurre lo standard XML era quella di essere più trasparenti, rendendo i file più portabili e la manipolazione dei file più facile. Ora strumenti di terze parti possono leggere / scrivere correttamente file Excel (lo so, potrebbero farlo con un po 'di reverse engineering ma era soggetto a errori). D'altra parte, l'utilizzo di file Excel di grandi dimensioni non è in realtà un utilizzo principale di Excel, quindi il compromesso per essere più portabili è minimo. Inoltre, l'utilizzo di un file non macro aumenta in una certa misura la sicurezza. A titolo di confronto, perché preoccuparsi di Java se Assembler è migliore?
Ister

9

Si potrebbe pensare che xlsb abbia solo vantaggi rispetto a xlsm. Il fatto che xlsm sia basato su XML e xlsb sia binario è che quando si verifica il danneggiamento della cartella di lavoro, hai maggiori possibilità di riparare un xlsm rispetto a un xlsb.


1
Se è vero, allora xlsm è quello che fa per me. Sono stato maledetto con file Excel corrotti dalla metà degli anni '90. Era quasi abbastanza per farmi iniziare a scavare fossi per vivere. Office 2000 è stata la prima versione con la funzionalità di ripristino dei file. Ma io non
riderBill

Le estensioni di file XLSX e XLSM sono molto, molto più stabili dell'estensione di file XLS di Excel precedente al 2007.
Felipe Costa Gualberto

8

Solo per i posteri, ecco il testo da diverse fonti esterne sui formati di file Excel. Alcuni di questi sono stati menzionati in altre risposte a questa domanda ma senza riprodurne il contenuto essenziale.

1. Da Doug Mahugh, 22 agosto 2006 :

... il nuovo formato binario XLSB. Come Open XML, è un formato di file ad alta fedeltà che può memorizzare tutto ciò che puoi creare in Excel, ma il formato XLSB è ottimizzato per le prestazioni in modi che non sono possibili con un formato XML puro.

Il formato XLSB (a volte indicato anche come BIFF12, come in "formato file binario per Office 12") utilizza la stessa Convenzione Open Packaging utilizzata dai formati Open XML e XPS. Quindi è fondamentalmente un contenitore ZIP e puoi aprirlo con qualsiasi strumento ZIP per vedere cosa c'è dentro. Ma invece delle parti .XML all'interno del pacchetto, troverai le parti .BIN ...

Questo articolo fa inoltre riferimento alla documentazione sul formato BIN , troppo lunga per essere riprodotta qui.

2. Dall'archivio MSDN, 29 agosto 2006, che a sua volta cita un post di blog già mancante relativo al formato XLSB:

Anche se abbiamo svolto molto lavoro per assicurarci che i nostri formati XML si aprano in modo rapido ed efficiente, questo formato binario è ancora più efficiente per Excel da aprire e salvare e può portare ad alcuni miglioramenti delle prestazioni per le cartelle di lavoro che contengono molti dati, o ciò richiederebbe un sacco di analisi XML durante il processo di apertura. (In effetti, abbiamo scoperto che il nuovo formato binario è più veloce del vecchio formato XLS in molti casi.) Inoltre, non esiste una versione priva di macro di questo formato di file: tutti i file XLSB possono contenere macro (VBA e XLM) . Sotto tutti gli altri aspetti, è funzionalmente equivalente al formato di file XML sopra:

Dimensione del file: la dimensione del file di entrambi i formati è approssimativamente la stessa, poiché entrambi i formati vengono salvati su disco utilizzando l'architettura di compressione zip: entrambi i formati utilizzano la stessa struttura di imballaggio ed entrambi hanno le stesse strutture a livello di parte. Supporto delle funzionalità: entrambi i formati supportano esattamente lo stesso set di funzionalità Prestazioni di runtime: una volta caricato in memoria, il formato del file non ha alcun effetto sull'applicazione / velocità di calcolo Convertitori: entrambi i formati avranno lo stesso supporto del convertitore


5

Il formato XLSB è anche dedicato alle macro incorporate in un file di cartella di lavoro nascosto situato nella cartella di avvio di Excel (XLSTART).

Un test rapido e sporco con un xlsm o xlsb nella cartella XLSTART:

Measure-Command { $x = New-Object -com Excel.Application ;$x.Visible = $True ; $x.Quit() }

0,89 con xlsb (binario) contro 1,3 con lo stesso contenuto in formato xlsm (xml in un file zip) ... :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.