Wann sollten die Formate xlsm oder xlsb verwendet werden?

106

Seit Excel 2007 hat Microsoft das klassische Split - .xlsFormat in verschiedenen Formaten (insbesondere .xlsx, .xlsm, .xlsb). Ich habe kein Problem damit, die Verwendung und den Zweck des .xlsxFormats zu verstehen, aber ich frage mich immer noch, ob wir beim Erstellen einer Datei mit VBA ein .xlsmoder ein .xlsbFormat verwenden sollen.

Natürlich finden Sie im Internet einige Themen, zum Beispiel:

Was ich aus diesem letzten Link verstanden habe, ist, dass .xlsmes sich um eine Art XML-Format handelt, das für die benutzerdefinierte Multifunktionsleistenregisterkarte benötigt wird.

Gibt es neben dem konzeptionellen Unterschied zwischen dem Format ( .xlsmbasierend auf XML VS .xlsbist eine Binärdatei ) einen praktischen Unterschied bei der Verwendung einer dieser Dateien (abgesehen von der Multifunktionsleistenanpassung)?
Haben Sie jemals einen wirklichen Unterschied bei der Verwendung eines dieser Formate gesehen?

JMax
quelle
3
xlsb ist normalerweise kleiner als xlsm
Charles Williams
Einige nützliche Informationen hier - Analystcave.com/…
Chris
1
Aus irgendeinem Grund gelöst .xlsb über XLSM einige Probleme mit wir wurden mit einer benutzerdefinierten Funktion mit der Erstellung Phantom im Objektmodell Objekte: superuser.com/questions/1005482/...
SuMau

Antworten:

62

Sie sind sich alle insofern ähnlich, als sie im Wesentlichen Zip-Dateien sind, die die eigentlichen Dateikomponenten enthalten. Sie können den Inhalt anzeigen, indem Sie die Erweiterung durch .zip ersetzen und öffnen. Der Unterschied zu xlsb scheint darin zu bestehen, dass die Komponenten nicht XML-basiert sind, sondern in einem Binärformat vorliegen. Dies ist angeblich bei der Arbeit mit großen Dateien von Vorteil.

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

Tim Williams
quelle
XLS-Dateien hatten ein binäres Format. XLSB-Dateien behalten dieses Binärformat für die neueren Office-Versionen bei. Das Speichern der Daten im Binärformat bietet sowohl einen Größenunterschied als auch einen Geschwindigkeitsvorteil, obwohl die Verbesserungen nur bei SEHR großen Dateien festgestellt werden.
music2myear
90

.xlsxLädt 4-mal länger als .xlsbund speichert 2-mal länger und hat 1,5-mal eine größere Datei. Ich habe dies an einem generierten Arbeitsblatt mit 10'000 Zeilen * 1'000 Spalten = 10'000'000 (10 ^ 7) Zellen einfacher verketteter =…+1Formeln getestet :

╭──────────────╥────────┬────────╮
│              ║ .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 U / min SATA II HD; Windows 7 unter etwas starker Belastung durch andere Prozesse.)

Daneben sollte es keine Unterschiede geben. Etwas präziser,

Beide Formate unterstützen genau den gleichen Funktionsumfang

zitiert diesen Blog- Beitrag vom 29.08.2006. Vielleicht sind die Informationen, .xlsbdie den Ribbon-Code nicht unterstützen, neuer als das obere Zitat, aber ich denke, dass Ihre Forum-Quelle einfach falsch ist. Beim Öffnen der Binärdatei scheint sie die OOXML-Dateistruktur 1-zu-1: Blog- Artikel vom 07.08.2006 komprimiert nachzuahmen

Aaron Thoma
quelle
2
Nur ein Versuch, kein Ministat (1) ergibt jedoch: - \
Gute Person
2
Ich bestätige, dass eine meiner Dateien mit einem benutzerdefinierten Menüband in xlsb einwandfrei funktioniert.
David G
5
@PatrickLepelletier .xlsxist wie .xlsm, nur mit deaktivierten Makros. Beide sind XML-basiert. Im Gegensatz dazu .xlsbist binär. Sie sollten die Frage also als "{.xlsx / .xlsm} versus .xlsb" lesen. (Es gibt keine makro-deaktivierte Version der Binärdatei .xlsb.)
Aaron Thoma
4
Wenn xlsb besser ist, warum ist xlsx die Standardeinstellung? Es muss einen Nachteil für xlsb geben?
PProteus
3
@PProteus, einfach gesagt, xlsb ist in einem bestimmten Bereich besser. Die gesamte Idee der Einführung des XML-Standards bestand darin, transparenter zu sein, Dateien portabler zu machen und die Dateimanipulation zu vereinfachen. Jetzt können Tools von Drittanbietern Excel-Dateien ordnungsgemäß lesen / schreiben (ich weiß, sie könnten dies mit etwas Reverse Engineering tun, aber das war fehleranfällig). Auf der anderen Seite ist die Verwendung großer Excel-Dateien keine primäre Verwendung von Excel, sodass der Kompromiss für die Portabilität geringer ist. Darüber hinaus erhöht die Verwendung einer Nicht-Makro-Datei die Sicherheit bis zu einem gewissen Grad. Warum sollte man sich zum Vergleich mit Java beschäftigen, wenn Assembler besser ist?
Ister
9

Man könnte denken, dass xlsb nur Vorteile gegenüber xlsm hat. Die Tatsache, dass xlsm XML-basiert und xlsb binär ist, bedeutet, dass Sie bei einer Beschädigung der Arbeitsmappe bessere Chancen haben, ein xlsm zu reparieren als ein xlsb.

Felipe Costa Gualberto
quelle
1
Wenn das stimmt, dann ist der XLSM der richtige für mich. Ich bin seit Mitte der späten 90er Jahre mit beschädigten Excel-Dateien verflucht. Es war fast genug, um mich dazu zu bringen, meinen Lebensunterhalt mit dem Graben zu verdienen. Office 2000 war die erste Version mit der Dateiwiederherstellungsfunktion. Aber ich don
riderBill
XLSX- und XLSM-Dateierweiterungen sind viel, viel stabiler als die Excel XLS-Dateierweiterung vor 2007.
Felipe Costa Gualberto
8

Nur für die Nachwelt hier der Text aus mehreren externen Quellen zu den Excel-Dateiformaten. Einige davon wurden in anderen Antworten auf diese Frage erwähnt, ohne jedoch den wesentlichen Inhalt wiederzugeben.

1. Von Doug Mahugh, 22. August 2006 :

... das neue XLSB-Binärformat. Wie Open XML ist es ein Full-Fidelity-Dateiformat, in dem alles gespeichert werden kann, was Sie in Excel erstellen können. Das XLSB-Format ist jedoch auf eine Weise optimiert, die mit einem reinen XML-Format nicht möglich ist.

Das XLSB-Format (manchmal auch als BIFF12 bezeichnet, wie im „Binärdateiformat für Office 12“) verwendet dieselbe Open Packaging-Konvention, die von den Open XML-Formaten und XPS verwendet wird. Es handelt sich also im Grunde genommen um einen ZIP-Container, den Sie mit jedem ZIP-Tool öffnen können, um zu sehen, was sich darin befindet. Anstelle von XML-Teilen im Paket finden Sie jedoch .BIN-Teile ...

Dieser Artikel bezieht sich auch auf die Dokumentation zum BIN-Format , die zu lang ist, um hier reproduziert zu werden.

2. Aus dem MSDN-Archiv vom 29. August 2006 , in dem wiederum ein bereits fehlender Blog-Beitrag zum XLSB-Format zitiert wird:

Obwohl wir viel Arbeit geleistet haben, um sicherzustellen, dass unsere XML-Formate schnell und effizient geöffnet werden, ist dieses Binärformat für Excel immer noch effizienter zu öffnen und zu speichern und kann zu einigen Leistungsverbesserungen für Arbeitsmappen führen, die viele enthalten Daten, oder das würde viel XML-Analyse während des Open-Prozesses erfordern. (Tatsächlich haben wir festgestellt, dass das neue Binärformat in vielen Fällen schneller ist als das alte XLS-Format.) Außerdem gibt es keine makrofreie Version dieses Dateiformats - alle XLSB-Dateien können Makros enthalten (VBA und XLM). . Im Übrigen entspricht es funktional dem obigen XML-Dateiformat:

Dateigröße - Die Dateigröße beider Formate ist ungefähr gleich, da beide Formate mithilfe der Zip-Komprimierungsarchitektur auf der Festplatte gespeichert werden. Beide Formate verwenden dieselbe Verpackungsstruktur und beide haben dieselben Strukturen auf Teilebene. Funktionsunterstützung - beide Formate unterstützen genau den gleichen Funktionsumfang Laufzeitleistung - Sobald das Dateiformat in den Speicher geladen wurde, hat es keine Auswirkungen auf die Anwendungs- / Berechnungsgeschwindigkeit Konverter - beide Formate haben identische Konverterunterstützung

UuDdLrLrSs
quelle
5

Das XLSB-Format ist auch für Makros vorgesehen, die in eine versteckte Arbeitsmappendatei eingebettet sind, die sich im Excel-Startordner (XLSTART) befindet.

Ein schneller und schmutziger Test mit einem xlsm oder xlsb im XLSTART-Ordner:

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

0,89s mit einem xlsb (binär) versus 1,3s mit dem gleichen Inhalt im xlsm-Format (xml in einer Zip-Datei) ... :)

Alexis-Emmanuel Haeringer
quelle